我有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/'

我怎么能坚持要求雅典娜将我的文件读为GZIP

最佳答案

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

没有强制压缩/解压缩算法的明显方法。雅典娜尝试基于文件扩展名识别压缩。具有GZIP后缀的.gz文件将是可读的;没有该后缀的GZIP文件将不会。

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



一些调查显示:

  • 使Athena识别文件为GZIP的唯一已知方法是用.gz后缀命名。
  • 其他不起作用的类似后缀包括.gzip.zip[^.]gz
  • GZIP和未压缩的文件可以在Athena表或分区中愉快地并存-压缩检测是在文件级别而非表级别进行的。
  • 关于hive - 使用雅典娜指定压缩类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48817572/

    10-16 02:38