使用Athena指定压缩类型

时间:2018-02-15 22:50:18

标签: hive amazon-athena

我有S3数据压缩{​​{1}}。我正在尝试使用此文件在Athena中创建一个表,并且我的GZIP语句成功 - 但是当我查询表时,所有行都是空的。

CREATE TABLE

我如何坚持雅典娜将我的文件读作create external table mydatabase.table1 ( date date, week_begin_date date, week_end_date date, value float ) row format delimited fields terminated by ',' stored as inputformat 'org.apache.hadoop.mapred.TextInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' location 's3://my-bucket/some/path/'

1 个答案:

答案 0 :(得分:8)

虽然Athena支持TBLPROPERTIES元数据(我们可以设置CREATE TABLEALTER TABLE中的属性来设置这些属性,而SHOW TBLPROPERTIES来显示任何表的属性),它尊重TBLPROPERTIES ('compressionType'='gzip')选项。

没有明显的方法来强制压缩/解压缩算法。 Athena尝试根据文件扩展名识别压缩。带有GZIP后缀的.gz文件将是可读的;没有该后缀的GZIP文件不会。

同样,带有.gz后缀的未压缩文件将失败。报告的错误是

  

HIVE_CURSOR_ERROR:错误的标题检查

一些调查显示以下内容:

  • 让Athena将文件识别为GZIP的唯一已知方法是使用.gz后缀命名。
  • 工作的其他类似后缀包括.gzip.zip[^.]gz
  • GZIP和未压缩文件可以在Athena表或分区中幸福地生活在一起 - 压缩检测在文件级别完成,而不是在表级别完成。