Ame*_*ina 3 csv presto amazon-athena
考虑 CSV 文件中的以下行:
\n\n1,0,True,"{""foo"":null,""bar"":null}",0,1\n \xe2\x96\xb2\nRun Code Online (Sandbox Code Playgroud)\n\n突出显示的, 是列的一部分。也就是说,这个全文:" {""foo"":null,""bar"":null}"是单列的值。但是,AWS Athena 会将突出显示的内容解释,为列分隔逗号,从而错误地将文本拆分为多列。
我知道我可以将列分隔符更改为其他内容以避免此问题。我的问题是:这是 AWS Athena / Presto 中的错误吗?我怎样才能逃脱这些逗号?
\n如果您的数据用双引号引起来,则需要使用OpenCSVSerDe。
对于示例数据,下表定义有效:
1,0,True,"{""foo"":null,""bar"":null}",0,1
Run Code Online (Sandbox Code Playgroud)
如何转义数据中的逗号
CREATE EXTERNAL TABLE `extra_comma`(
`a` string COMMENT 'from deserializer',
`b` string COMMENT 'from deserializer',
`c` string COMMENT 'from deserializer',
`d` string COMMENT 'from deserializer',
`e` string COMMENT 'from deserializer',
`f` string COMMENT 'from deserializer'
)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.OpenCSVSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
's3://aws-glue-stackoverflow/comma_in_data/'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6335 次 |
| 最近记录: |