使用Athena查询S3文本文件

时间:2017-12-05 06:33:01

标签: amazon-s3 amazon-athena

我在Athena上创建了一个数据库和表,指向一个S3存储桶,在那里我使用redshift数据库上的UNLOAD命令创建了日志文件。文件具有默认分隔符作为列的管道(|)。

在使用Athena接口创建表时,我使用字段终结符作为管道(|),集合和映射键终止符作为默认值。这是DDL声明。

CREATE EXTERNAL TABLE IF NOT EXISTS testdb.worktable (
field1 string,
field2 string,
field3 int,
field4 string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = '|',
  'field.delim' = '|',  
  'collection.delim' = 'undefined',
  'mapkey.delim' = 'undefined',
) LOCATION 's3://bucket_location'
TBLPROPERTIES ('has_encrypted_data'='false');

问题: 大多数行都正确地与作为列提到的字段对齐(由管道|分隔)但是当特定字段中有空格时,例如说field2列下的空格,数据向右移动,意味着 field3 列数据显示在field4列

有人可以帮我修复此错误吗?谢谢!

0 个答案:

没有答案