我想使用 OpenCSVSerde 在 AWS Athena 上基于 CSV 文件创建外部表。
CREATE EXTERNAL TABLE `table`(name string, value double, group string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES ("separatorChar" = ",", "escapeChar" = "\\","skip.header.line.count"="1", "serialization.null.format"="")
LOCATION 's3://path' ;
该文件包含“值”字段(双精度类型)的一些缺失值。它看起来像这样:
name,value,group
name1,0.5,a
name2,0.2,a
name3,,a
name4,0.11,b
创建后,当我尝试运行一些查询(例如简单的“select * from table”)时,Athena 给出了以下错误:
HIVE_BAD_DATA: Error parsing column '1': empty String
正如您从创建外部表查询中看到的,我尝试添加 'serialization.null.format'='' 但它似乎不起作用。我发现的唯一解决方案是将列“值”定义为字符串,但这显然不是理想的解决方案(特别是如果您有很多这样的列)。
您知道如何解决这个问题吗?
谢谢