如何在Pig的一组袋子上使用distinct

t1rydlwq  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(340)

以下是我的输入:
({(fish m.),(fish m.),(fish m.),(fish m.),(fish m.)},{(acasuso j.),(acasuso j.),(acasuso j.),(acasuso j.),(acasuso j.),(acasuso j.)},{(8/23/2007),(8/23/2007),(8/23/2007),(8/23/2007)},{(99.8400222685783),(58.1733572158776),(psl),(41.66666 501098216),(exw)})
我想对第一个和第二个包做一个不同的处理,得到一个结果,每个结果产生如下输出:
(fish m.,acasuso j.,2007年8月23日,99.84002222685783,58.173357215875676,psl,41.66666501098216,exw)

avwztpqn

avwztpqn1#

这个脚本应该工作,我已经忽略了最后一个包在您的条目为简洁。

rr = load 'data/pig/input/Pig_DataSets/six' using CustomLoadFunction() as (one:bag{tup1:(c1:chararray)},two:bag{tup2:(c2:chararray)},three:bag{tup3:(c3:chararray)});
tt = foreach rr {
    mm = two;
    nn = distinct mm;
    oo = one;
    pp = distinct oo;
    generate three,pp,nn;
    };

您可能必须使用自定义加载函数,因为默认加载程序无法工作(除非您进行一些数据清理)。本文讨论了一个可能适合您的场景的自定义加载程序。

相关问题