0

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

我知道的选项:

  1. 强制单个文件加载,扩展 RecordReader,使用 DistributedCache 通过 RecordReader 运行解码器
  2. 强制单个文件加载,RecordReader 返回单个文件,使用 hadoop 流解码每个文件

然而,看起来 [2] 不起作用,因为 pig 在将记录发送到 STREAM 运算符之前会连接它们(即它将发送多条记录)。

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

有没有更好的办法?

4

1 回答 1

0

Seems like Option 1 that you mentioned is the most viable option. In addition to extending RecordReader, appropriate InputFormat should be extended and override the isSplitable() to return false

于 2013-05-01T02:40:50.940 回答