将空字符串读取为Null Athena



我想在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')

所以,我的问题是,雅典娜读空字符串实际上是空字符串,但我希望看到它像null一样。我在文档中没有找到任何属性。

默认情况下,

LazySimpleSerDe会将N解释为NULL,但您可以将其配置为使用具有serialization.null.formatserde属性的其他字符串。

有关CSV和Athena的更多详细信息,请参阅本指南。