0

我有一些猪脚本,它使用 PigStorage() 从普通文本文件中获取输入。我想从 Hive Metastore 加载和存储数据,因为我使用了 Hcatalog 中的 HcatLoader() 和 HcatStorage()。有人可以告诉我如何在 pig 中存储和加载压缩配置单元数据。

4

2 回答 2

0

如果使用 gzip 或 bzip2 压缩,Pig 通常知道如何自动加载压缩数据。对于 LZO,您必须在集群上启用它。

要以压缩形式存储数据,您可以将其放入脚本中:

SET mapred.output.compress true;
SET mapred.output.compression.codec org.apache.hadoop.io.compress.GzipCodec;

这将导致您的输出使用 gzip 进行压缩。

于 2013-10-15T16:56:19.140 回答
0

HCatalog 章程的一部分是让消费者完全不了解存储问题(如压缩或格式)。如果底层存储首先未压缩,然后再压缩,则您不必重写脚本以确保您正在读取压缩数据。

话虽如此……我认为 HCatalog 中还没有实现压缩支持。 HCatalog 路线图- 很久以前写的......但在设想的未来功能中具有“压缩”。

我的猜测是您将不得不求助于使用 HiveStorage 类而不是 HCatalog。

免责声明:我也可能完全误解了这一点,但我能够找到的所有证据似乎都表明 HCatalog 中没有实现压缩。

于 2013-10-18T16:01:58.237 回答