AWS Athena针对CSV文件切换SerDe Lib
Glue Crawler会默认使用:
Serde serialization lib | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |
作为CSV文件的解析引擎。
但是如果CSV用双引号作为封闭符的话,这个引擎会把双引号当作数据的一部分,不能正确识别出封闭符。
所以要改用另一个引擎:
Serde serialization lib | org.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."