使用 Athena 指定压缩类型
Specify compression type with Athena
我有 GZIP
压缩的 S3 数据。我正在尝试使用此文件在 Athena 中创建一个 table,并且我的 CREATE TABLE
语句成功 - 但是当我查询 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/'
我怎样才能坚持让 Athena 以 GZIP
的身份读取我的文件?
虽然 Athena 支持 TBLPROPERTIES
元数据(我们可以在 CREATE TABLE
、ALTER TABLE
to set these properties, and SHOW TBLPROPERTIES
中设置属性以显示任何 table 的属性),但它 不尊重TBLPROPERTIES ('compressionType'='gzip')
选项。
没有明显的方法来强制压缩/解压缩算法。 Athena 尝试根据文件扩展名来识别压缩。具有 .gz
后缀的 GZIP
文件将是可读的;没有该后缀的 GZIP
文件将不会。
同样,带有 .gz
后缀的未压缩文件将失败。报告的错误是
HIVE_CURSOR_ERROR: incorrect header check
一些调查揭示了以下内容:
- 让 Athena 将文件识别为
GZIP
的唯一已知方法是使用 .gz
后缀命名它。
- 其他不起作用的类似后缀包括
.gzip
、.zip
、[^.]gz
GZIP
和未压缩的文件可以愉快地并存于 Athena table 或分区中 - 压缩检测是在文件级别完成的,而不是在 table 级别。
我有 GZIP
压缩的 S3 数据。我正在尝试使用此文件在 Athena 中创建一个 table,并且我的 CREATE TABLE
语句成功 - 但是当我查询 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/'
我怎样才能坚持让 Athena 以 GZIP
的身份读取我的文件?
虽然 Athena 支持 TBLPROPERTIES
元数据(我们可以在 CREATE TABLE
、ALTER TABLE
to set these properties, and SHOW TBLPROPERTIES
中设置属性以显示任何 table 的属性),但它 不尊重TBLPROPERTIES ('compressionType'='gzip')
选项。
没有明显的方法来强制压缩/解压缩算法。 Athena 尝试根据文件扩展名来识别压缩。具有 .gz
后缀的 GZIP
文件将是可读的;没有该后缀的 GZIP
文件将不会。
同样,带有 .gz
后缀的未压缩文件将失败。报告的错误是
HIVE_CURSOR_ERROR: incorrect header check
一些调查揭示了以下内容:
- 让 Athena 将文件识别为
GZIP
的唯一已知方法是使用.gz
后缀命名它。 - 其他不起作用的类似后缀包括
.gzip
、.zip
、[^.]gz
GZIP
和未压缩的文件可以愉快地并存于 Athena table 或分区中 - 压缩检测是在文件级别完成的,而不是在 table 级别。