2014-12-20 27 views
1

我想找到給另一個變量的組合:你可以在PIG中的多個關係之間立方體嗎?

例子:

name, group, points 
jim, T, 12 
steven, T, 10 
ting, T, 15 
matt, F, 16 
aamir, F, 12 

我希望能夠T和的F成員之間得到的所有組合,並做一些乘法給分列該。我首先想到的是將它分解爲兩個關係,即T和F關係,並使用CUBE在它們之間進行一些組合,但我不認爲可以在關係之間使用CUBE?有什麼建議麼?

結果:

jim,  matt, 12*16 
jim,  aamir, 12*12 
steven, matt, 16*16 
... 
... 
ting, aamir, 15*12 

回答

0

你可以試試這個?

input.txt中

jim,T,12 
steven,T,10 
ting,T,15 
matt,F,16 
aamir,F,12 

PigScript:

A = LOAD 'input.txt' USING PigStorage(',') AS (name:chararray, group:chararray, points:int); 
B = FILTER A BY group=='T'; 
C = FILTER A BY group=='F'; 
D = CROSS B,C; 
E = FOREACH D GENERATE B::name,C::name,B::points*C::points; 
DUMP E; 

輸出

(jim,matt,192) 
(jim,aamir,144) 
(steven,matt,160) 
(steven,aamir,120) 
(ting,matt,240) 
(ting,aamir,180) 
相關問題