我有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/'
?
答案 0 :(得分:8)
虽然Athena支持TBLPROPERTIES
元数据(我们可以设置CREATE TABLE
,ALTER TABLE
中的属性来设置这些属性,而SHOW TBLPROPERTIES
来显示任何表的属性),它不尊重TBLPROPERTIES ('compressionType'='gzip')
选项。
没有明显的方法来强制压缩/解压缩算法。 Athena尝试根据文件扩展名识别压缩。带有GZIP
后缀的.gz
文件将是可读的;没有该后缀的GZIP
文件不会。
同样,带有.gz
后缀的未压缩文件将失败。报告的错误是
HIVE_CURSOR_ERROR:错误的标题检查
一些调查显示以下内容:
GZIP
的唯一已知方法是使用.gz
后缀命名。.gzip
,.zip
,[^.]gz
GZIP
和未压缩文件可以在Athena表或分区中幸福地生活在一起 - 压缩检测在文件级别完成,而不是在表级别完成。