對豬

2014-06-30 70 views
-1

我有一個文件的多列鮮明對豬

(1,1,100) 
    (1,1,200) 
    (1,2,300) 

現在我想的不同被分爲兩個欄應用,並希望可以將輸出爲

我這樣做

集團在所有其他列上,將感興趣的列項目放入一個包中,然後使用FLATTEN將它們再次展開:

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) 

回答

0

在這裏你走這應該給你所需要的輸出 -

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

下面的代碼生成所需的結果。

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 ;