我有一些猪脚本,它使用PigStorage()从普通文本文件中获取输入。我想加载和存储来自hive Metastore的数据,因为我已经使用了来自Hcatalog的HcatLoader()和HcatStorage()。有人能告诉我如何在猪中存储和加载压缩蜂巢数据。
答案 0 :(得分:0)
Pig通常知道如何使用gzip或bzip2压缩压缩数据。对于LZO,您必须在群集上启用它。
要以压缩形式存储数据,您可以将其放在脚本中:
SET mapred.output.compress true;
SET mapred.output.compression.codec org.apache.hadoop.io.compress.GzipCodec;
这将导致您的输出使用gzip进行压缩。
答案 1 :(得分:0)
HCatalog的部分章程是让消费者完全不了解存储问题(如压缩或格式)。如果底层存储首先解压缩然后压缩,则不必重写脚本以确保您正在读取压缩数据。
话虽如此......我认为压缩支持还没有在HCatalog中实现。 HCatalog Roadmap - 写了很久以前......但在预想的未来特征中有“压缩”。
我的猜测是你不得不求助于使用HiveStorage类而不是HCatalog。
免责声明:我也可能完全弄错了,但我能找到的所有证据似乎都表明HCatalog中没有实现压缩。