【发布时间】:2015-09-05 03:20:00
【问题描述】:
我有两组元组,我想通过第一个元素将它们内部连接起来,并将其他部分合并到一个元组中,想知道如何在 Pig on Hadoop 中实现这一点?
输入两个元组集,
1,(1,2)
2,(2,3)
1,(b,c,b,c)
2,(c,d,c,d)
预期输出,
1,(1,2,b,c,b,c)
2,(2,3,c,d,c,d)
提前致谢, 林
【问题讨论】:
标签: hadoop apache-pig
我有两组元组,我想通过第一个元素将它们内部连接起来,并将其他部分合并到一个元组中,想知道如何在 Pig on Hadoop 中实现这一点?
输入两个元组集,
1,(1,2)
2,(2,3)
1,(b,c,b,c)
2,(c,d,c,d)
预期输出,
1,(1,2,b,c,b,c)
2,(2,3,c,d,c,d)
提前致谢, 林
【问题讨论】:
标签: hadoop apache-pig
一个值得思考的想法......
输入:
数据A:
1 (1,2)
2 (2,3)
数据B:
1 (b,c,b,c)
2 (c,d,c,d)
猪脚本:
A = LOAD 'dataA' USING PigStorage('\t') AS (aid:long, atuple : tuple(af1:long, af2:long));
B = LOAD 'dataB' USING PigStorage('\t') AS (bid:long, btuple : tuple(bf1:chararray, bf2:chararray, bf3:chararray, bf4:chararray));
C = JOIN A BY aid, B BY bid;
D = FOREACH C GENERATE aid AS id, FLATTEN(atuple) AS (af1:long, af2:long) , FLATTEN(btuple) AS (bf1:chararray, bf2:chararray, bf3:chararray, bf4:chararray);
E = FOREACH D GENERATE id, (af1..bf4);
DUMP E;
输出:DUMP E:
(1,(1,2,b,c,b,c))
(2,(2,3,c,d,c,d))
【讨论】: