我有大量二进制格式的输入文件。我需要把它们分成几行以便进一步处理。每个文件必须由一个外部二进制文件一次解码(即文件不得串联或分割)。
我知道的选项:
强制单文件加载,扩展recordreader,使用distributedcache通过recordreader运行解码器
强制单个文件加载,recordreader返回单个文件,使用hadoop流对每个文件进行解码
然而,看起来[2]将不起作用,因为pig将在将记录发送给stream操作符之前连接记录(即,它将发送多个记录)。
[1] 似乎可行,只是多一点工作。
有更好的办法吗?
1条答案
按热度按时间chhqkbe11#
似乎你提到的选项1是最可行的选项。除了扩展recordreader之外,还应该扩展适当的inputformat并覆盖
isSplitable()
返回false