我有一些pig脚本,它使用pigstorage()从普通文本文件获取输入。我想从配置单元元存储中加载和存储数据,为此我使用了hcatalog中的hcatloader()和hcatstorage()。有人能告诉我如何在pig中存储和加载压缩配置单元数据吗。
bksxznpy1#
hcatalog章程的一部分是让消费者完全不知道存储问题(如压缩或格式)。如果底层存储先解压缩,然后再压缩,则不必重写脚本以确保正在读取压缩数据。话虽如此。。。我认为压缩支持还没有在hcatalog中实现。hcatalog路线图-很久以前写的。。。但在设想的未来功能中有“压缩”功能。我猜您将不得不使用hivestorage类而不是hcatalog。免责声明:关于这一点,我也可能完全弄错了,但我能找到的所有证据似乎都表明,压缩并没有在hcatalog中实现。
fcipmucu2#
pig通常知道如何自动加载压缩数据,如果它是使用gzip或bzip2压缩的。对于lzo,您必须在集群上启用它。要以压缩形式存储数据,可以将其放入脚本中:
SET mapred.output.compress true; SET mapred.output.compression.codec org.apache.hadoop.io.compress.GzipCodec;
这将导致使用gzip压缩输出。
2条答案
按热度按时间bksxznpy1#
hcatalog章程的一部分是让消费者完全不知道存储问题(如压缩或格式)。如果底层存储先解压缩,然后再压缩,则不必重写脚本以确保正在读取压缩数据。
话虽如此。。。我认为压缩支持还没有在hcatalog中实现。hcatalog路线图-很久以前写的。。。但在设想的未来功能中有“压缩”功能。
我猜您将不得不使用hivestorage类而不是hcatalog。
免责声明:关于这一点,我也可能完全弄错了,但我能找到的所有证据似乎都表明,压缩并没有在hcatalog中实现。
fcipmucu2#
pig通常知道如何自动加载压缩数据,如果它是使用gzip或bzip2压缩的。对于lzo,您必须在集群上启用它。
要以压缩形式存储数据,可以将其放入脚本中:
这将导致使用gzip压缩输出。