将元组分成多个元组

时间:2017-04-06 22:06:01

标签: apache-pig

我的元组不包含相同数量的数据:
(a,b,c,d)
(e,f)
(g,h,i)

我想做的是为每个数据创建新的元组:
(a)中
(b)中
(c)中
(d)
(e)中
(F)
(克)
(H)
(ⅰ)

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

假设你有一个关系A,那么下面的语句将为你提供所需的输出。

B = FOREACH A GENERATE FLATTEN(ToBag(*));

答案 1 :(得分:0)

以下是您如何产生所需结果(已经过测试):

Data:
a,b,c,d
e,f
g,h,i

假设您在关系中有这些数据,A。

A  = LOAD 'data file' using PigStorage(',');

Next语句将每一行转换为一个包,这是生成所需结果的下一步所必需的。在此操作之后,每个记录/元组将有一个元素,一个包。

 B = foreach A generate TOBAG(*);

Flatten从包中取出每个元素并将它们放在单独的行中。

C = foreach B generate flatten($0);

dump C;
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)