pig脚本,用于压缩和解压缩bzip2中的hdfs数据

irtuqstp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(342)

如何使用pig将hdfs数据压缩到bzip2,这样在解压时它应该给出与最初相同的dir结构。
我试着用bzip2压缩,但它生成了许多文件,因为许多Map器正在生成,因此很难恢复到相同dir结构中的纯文本文件(初始形式)。
就像在unix中,如果我们使用tarball压缩bzip2,然后在解压缩bzip2之后,tar会给我与最初完全相同的数据和文件夹结构。
eg公司mpression:- tar -cjf压缩\u文件夹.tar.bz2压缩\u文件夹/
装饰mpression:- tar -jtvf压缩\u文件夹.tar.bz2
将给出完全相同的方向。

vu8f3i0k

vu8f3i0k1#

方法1:
您可以尝试运行一个reducer,以便在其上仅存储一个文件 hdfs . 但妥协将是这里的表现。

set default_parallel 1;

若要压缩数据,请在pig脚本中设置这些参数(如果不尝试此操作)way:-

set output.compression.enabled true;
SET mapred.output.compression.codec 'org.apache.hadoop.io.compress.BZip2Codec';

只是使用 JsonStorage 存储文件时

STORE file INTO '/user/hduser/data/usercount' USING JsonStorage();

最后你还想读取数据,使用textloader

data = LOAD '/user/hduser/data/usercount/' USING TextLoader;

方法2:
filecrush:文件合并实用程序,可在@mr.github获得

相关问题