gpt4 book ai didi

map - PIG UDF 加载 .gz 文件失败

转载 作者:可可西里 更新时间:2023-11-01 16:18:34 27 4
gpt4 key购买 nike

我编写了 UDF 以将文件加载到 Pig 中。它适用于加载文本文件,但是,现在我还需要能够读取 .gz 文件。我知道我可以解压缩文件然后处理,但我只想读取 .gz 文件而不解压缩它。

我的 UDF 从 LoadFunc 扩展,然后在我的自定义输入文件 MyInputFile extends TextInputFormat 中。我还实现了 MyRecordReader。只是想知道 extends TextInputFormat 是否是问题所在?我尝试了 FileInputFormat,仍然无法读取文件。有人写过 UDF 从 .gz 文件读取数据吗?

最佳答案

TextInputFormat 也处理 gzip 文件。查看其 RecordReader 的 (LineRecordReader) initialize() 方法,其中初始化了正确的 CompressionCodec。另请注意,gzip 文件不可拆分(即使它们位于 S3 上)因此您可能需要使用可拆分格式(例如:LZO)或未压缩的数据来利用所需级别的并行处理。

如果您的 gzip 压缩数据存储在本地,您可以按照 here 中所述一步解压缩并将其复制到 hdfs。 .或者如果它已经在 hdfs 上
hadoop fs -cat/data/data.gz | gzip -d | hadoop fs -put -/data/data.txt 会更方便。

关于map - PIG UDF 加载 .gz 文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13979803/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com