首页 文章

首次使用查询后,AWS Athena csv元数据分隔符已更改

提问于
浏览
1

我想查询s3 csv文件到athena . 源csv文件desc :(分隔符'|')

system information
val1|val2|val3|val4|val5|

基于我在athena创建表:

Create external table dbname.fromcsv
(
col1 string,
col2 string,
col3 string,
col4 string,
col5 string
)
 ROW FORMAT SERDE  'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
  "separatorChar" = '|')
LOCATION
's3://mybucketloc/folder/'
TBLPROPERTIES ("skip.header.line.count"='1');

创建表并查询athena后,一切看起来都很好,数据分离良好等 .

第一个查询结果:

col1 col2  col3   col4 col5
val1 val2  val3   val4 val5

针对同一个表的下一个查询返回值为','分隔符存储在一列中...

col1                     col2  col3   col4  col5
val1,val1,val,val4,val5

然后在我的s3存储桶中添加了其他文件.csv.metadata

如何处理这种情况?我不想每次都删除.csv.metadata文件?有没有办法保持原始的创建表定义?我试图将create table更改为 ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 以及其他许多...

1 回答

  • 1

    我相信你的s3:// mybucketloc / folder /与athena查询结果桶相同 . 此存储桶由Athena创建,用于存储.csv.metadata等文件,仅供内部使用,因此您的.csv.metadata文件与csv文件存在于同一个存储桶中 .

    最简单的解决方案可能是,将您的csv文件放在不同的s3存储桶中而不是athena-query-results存储桶中 .

相关问题