pig udf load.gz文件失败

dkqlctbz  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(271)

我写了我的自定义项来将文件加载到pig中。它可以很好地加载文本文件,但是,现在我还需要能够阅读 .gz 文件。我知道我可以解压文件然后处理,但我只想读 .gz 文件,而不需要解压缩它。
我的自定义项从 LoadFunc ,然后在我的costom输入文件中 MyInputFile extends TextInputFormat . 我还实施了 MyRecordReader . 只是想知道 TextInputFormat 有问题吗?我试过了 FileInputFormat ,仍然无法读取文件。有人写自定义项读取数据吗 .gz 以前存档?

inb24sb2

inb24sb21#

TextInputFormat 同时处理gzip文件。看看它的读卡器( LineRecordReader )initialize()方法,其中正确的压缩编解码器已初始化。还要注意gzip文件不是可拆分的(即使它们位于s3上),因此您可能需要使用可拆分的格式(例如:lzo)或未压缩的数据来利用所需的并行处理级别。
如果gzip数据存储在本地,则可以按此处所述一步解压并将其复制到hdfs。或者已经在hdfs上了 hadoop fs -cat /data/data.gz | gzip -d | hadoop fs -put - /data/data.txt 会更方便。

相关问题