【发布时间】:2019-01-17 21:01:06
【问题描述】:
我在 AWS Athena 中从 csv 文件中添加了一个表,该表使用特殊字符“æøå”。这些在输出中显示为 �。 csv 文件使用 unicode 进行编码。我也尝试将编码更改为 UTF-8,但没有成功。 我已经在 S3 中上传了 csv,然后使用以下 DDL 将表添加到 Athena:
CREATE EXTERNAL TABLE `regions_dk`(
`postnummer` string COMMENT 'from deserializer',
`kommuner` string COMMENT 'from deserializer',
`regioner` string COMMENT 'from deserializer')
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'separatorChar'='\;')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
's3://bucket/path'
TBLPROPERTIES (
'classification'='csv')
我有另一个表,其中还包含字符“æøå”,我使用 ETL 脚本添加了它,这里没有问题。
我忽略了什么?
【问题讨论】:
-
我建议对文本进行base64编码,如果你找不到更好的解决方案:)
-
您确定文件编码是 UTF-8 吗?刚刚尝试使用示例中包含的字符并按预期工作。但是,如果我在 WIN 10 上运行的 Excel 中创建 csv(默认编码不是 UTF-8),我会得到你提到的那些意外字符。
-
@PeterKoncz - 是的,由于某种原因,我的编码错误。我以为我改成了 UTF-8,但不知何故搞砸了 :) 感谢您的回复
-
在列中添加评论时遇到同样的问题
标签: sql amazon-web-services ddl amazon-athena presto