使用Athena指定压缩类型

Kir*_*rst 5 hive amazon-athena

我有S3数据,它有GZIP压缩.我正在尝试使用此文件在Athena中创建一个表,并且我的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/'
Run Code Online (Sandbox Code Playgroud)

我怎么能坚持雅典娜把我的文件读成GZIP

Kir*_*rst 10

而雅典娜支持TBLPROPERTIES元数据(我们可以设置内的属性CREATE TABLE,ALTER TABLE设置这些属性,并SHOW TBLPROPERTIES显示任何表中的特性)时,它尊重TBLPROPERTIES ('compressionType'='gzip')选项.

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

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

HIVE_CURSOR_ERROR:标题检查不正确

一些调查显示以下内容:

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