Apache pig 在清管器的多个柱上不同

Apache pig 在清管器的多个柱上不同,apache-pig,Apache Pig,我有一份档案 (1,1,100) (1,1,200) (1,2,300) 现在我希望在两列上应用distinct,并希望输出为 是我干的 将所有其他列分组,仅将感兴趣的列投影到一个袋子中,然后使用“展平”再次将其展开: A_unique = FOREACH (GROUP A BY id3) { b = A.(id1,id2); s = DISTINCT b; GENERATE FLATTEN(s); }; DUMP

我有一份档案

 (1,1,100)
   (1,1,200)
   (1,2,300)
现在我希望在两列上应用distinct,并希望输出为

是我干的

将所有其他列分组,仅将感兴趣的列投影到一个袋子中,然后使用“展平”再次将其展开:

A_unique =
    FOREACH (GROUP A BY id3) {
        b = A.(id1,id2);
        s = DISTINCT b;
        GENERATE FLATTEN(s);
    };

DUMP A_unique;
输出结果是

(1,1)
(1,1)
(1,2)
我原以为是这样的

(1,1)
(1,2)

给你,这会给你想要的输出-

a = load 'sample1.txt' using PigStorage(',') as (id1:int, id2:int, id3:int);
b = group a by (id1, id2);
c = foreach b {
    first_e = limit a.id3 1;    
    generate flatten(group) as (id1, id2);
}

下面的代码生成所需的结果

a = load '$dir/data' using PigStorage(',') as (d1:int,d2:int,d3:int);
b= group a all;
c= foreach b {
d = a.(d1,d2);
e = DISTINCT d;
generate FLATTEN(e);
}
dump c ;
~