【问题标题】:Read empty string as Null Athena将空字符串读取为 Null Athena
【发布时间】:2021-10-12 08:26:00
【问题描述】:

我想通过 s3 上的 csv 文件在 Amazon Athena 中创建一个表。 CSV 文件看起来像

id,name,invalid
1,abc,
2,cba,y

创建表格的代码如下所示

CREATE EXTERNAL TABLE IF NOT EXISTS {schema}.{table_name} (
id int,
name string,
invalid string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'field.delim' = ','
)
LOCATION '{s3}'
TBLPROPERTIES ('has_encrypted_data'='false','compressionType'='gzip')

所以,我的问题是 Athena 将空字符串读取为实际上是空字符串,但我希望将其视为 null。我在文档中没有找到任何属性。

【问题讨论】:

    标签: csv amazon-athena


    【解决方案1】:

    LazySimpleSerDe 默认将\N 解释为NULL,但您可以通过serialization.null.format serde 属性将其配置为使用其他字符串。

    更多详情请联系this guide on CSV and Athena

    【讨论】:

    • 据我所知,不可能将空字符串设置为Null,不是吗?
    • 我记得它是这样工作的,是的,但请仔细检查如果将 serialization.null.format 设置为空字符串会发生什么。
    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 2017-05-12
    • 2021-11-11
    • 2021-04-24
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多