如何在猪的一组袋子上使用Distinct

时间:2015-05-15 16:40:08

标签: nested apache-pig distinct bag

这是我的输入,如下所述:

  

({(Fish M。),(Fish M。),(Fish M。),(Fish M。),(Fish M。)},{(Acasuso J。),(Acasuso。),( Acasuso J。),(Acasuso J。),(Acasuso J。)},{(2007年8月23日),(2007年8月23日),(2007年8月23日),(8/23/2007) ,(2007/8/23)},{(99.84002222685783),(58.173357215875676),(PSL),(41.66666501098216),(EXW)})

我想在第一个和第二个袋子上做一个明显的结果,每个袋子得到一个结果,产生这样的输出:

  

(Fish M.,Acasuso J.,8/23 / 2007,99.84002222685783,58.173357215875676,PSL,41.66666501098216,EXW)

1 个答案:

答案 0 :(得分:2)

这个脚本应该可以使用,为了简洁,我忽略了你输入的最后一个包。

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;
    };

您可能必须使用自定义加载函数,因为默认加载器不起作用(除非您进行一些数据清理)。这个post讨论了一个可能适合你的场景的自定义加载器。