我是猪的新手。在做一个COGROUP
我遇到的问题。我正在尝试COGROUP
对两个文件执行操作。我使用的键COGROUP
具有空值。
以下是我的输入文件:Input_file_1:
a|b||
e|f||
Input_file_2:
a|b||
e|f||
我在执行时将所有四列用作键COGROUP
。(最后两列为空白)
我的预期输出是两条记录,但是我得到了四条记录作为输出。任何人都可以帮助COGROUP
在PIG中进行操作时如何避免空白值。
提前致谢。
空值在PIG中的处理方式非常不同。
根据艾伦·盖茨(Alan Gates)的话,《 Book Programming Pig》的作者说
cogroup处理键中的空值的方式与group类似,与join不同。也就是说,键中具有空值的所有记录将被收集在一起。
因此,COGROUP的输出为
((a,b,,),{(a,b,,)},{})
((a,b,,),{},{(a,b,,)})
((e,f,,),{(e,f,,)},{})
((e,f,,),{},{(e,f,,)})
在您的情况下,您必须加入JOIN而不是COGROUP。从而给您以下结果
(a,b,,,a,b,,)
(e,f,,,e,f,,)
然后生成所需的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句