我有一个这样创建的 Hive 表:
set hive.exec.compress.output=true;
set avro.output.codec=snappy;
CREATE EXTERNAL TABLE my_table (
aaa STRING,
...
)
STORED AS AVRO LOCATION '/somewhere/my_table';
我现在想通过 Pig 脚本将数据加载到此表中:
...
do lots of stuff
...
STORE a_bag_of_data INTO 'my_table' USING org.apache.hive.hcatalog.pig.HCatStorer();
到目前为止一切都很好(数据存储到 Avro 文件中),但我希望使用 snappy 编解码器对其进行压缩。
我试图添加(除其他外)
SET hive.exec.compress.output true;
SET avro.output.codec snappy;
到猪脚本,但它似乎没有任何区别。
如果我使用 Hive 查询将数据插入到表中,我可以在表的基础文件中看到它正在使用 snappy 压缩。
我有什么方法可以告诉 HCatWriter 告诉 Hive 使用 Snappy 压缩写入表?
谢谢你的帮助。