我想找到另一个变量的组合:
示例:
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 :(得分: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)