如何解码必须一次性使用外部二进制文件解码的二进制文件?

时间:2013-04-29 23:53:40

标签: hadoop apache-pig hadoop-streaming

我有大量的专有二进制格式的输入文件。我需要将它们变成行以便进一步处理。每个文件必须由外部二进制文件一次解码(即文件不能连接或拆分)。

我知道的选项:

  1. 强制单个文件加载,扩展RecordReader,使用DistributedCache通过RecordReader运行解码器
  2. 强制单个文件加载,RecordReader返回单个文件,使用hadoop流解码每个文件
  3. 看起来好像[2]不会起作用,因为pig会在将记录发送到STREAM运算符之前连接记录(即它会发送多个记录)。

    [1]似乎可行,只需要多做一点工作。

    有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

似乎您提到的选项1是最可行的选项。除了扩展RecordReader之外,还应该扩展相应的InputFormat并覆盖isSplitable()以返回false