AWS Athena针对CSV文件切换SerDe Lib

Glue Crawler会默认使用:

Serde serialization liborg.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

 作为CSV文件的解析引擎。

但是如果CSV用双引号作为封闭符的话,这个引擎会把双引号当作数据的一部分,不能正确识别出封闭符。

所以要改用另一个引擎:

Serde serialization liborg.apache.hadoop.hive.serde2.OpenCSVSerde

这个引擎默认使用双引号所谓封闭符,逗号作为CSV的分隔符。不用配置任何Serde parameters就能用。

但是由于空值的情况有可能会报错:HIVE_BAD_DATA: Error parsing field value '' for field x: For input string: ""

解决 Athena 中的“HIVE_BAD_DATA: Error parsing field value '' for field X: For input string: ""”错误

解决办法就是把一些可能是空的列,点击“Edit Schema”改成string类型。 

总结两句话:

1.  Edit table

 

2. Edit schema

modifty column type from "bigint/double" to "string."

posted @ 2022-08-16 11:29  爱知菜  阅读(20)  评论(0编辑  收藏  举报