使用Pig将组数据反转为不同的记录

时间:2014-11-19 17:06:54

标签: hadoop apache-pig

将组记录拆分为不同的记录: 例如: 输入:(A,(3,2,3)) 输出到3个新行: A,3 A2 A,3

任何人都可以告诉我这样做的选择吗?

1 个答案:

答案 0 :(得分:0)

问题是当你将Arraylist的输出转换为元组然后很难实现你想要的,所以我推荐这种方法,因此很容易得到输出。

在您的UDF代码中,不是创建Arraylist,而是将输出附加到以逗号分隔的字符串中,然后返回到pig脚本。

你的最终输出应该是这样的,从UDF作为一个字符串,即" 3,2,3"

然后使用以下代码获取结果

C = FOREACH B GENERATE $0,NewRollingCount(BagToString($1)) AS rollingCnt
D = FOREACH C GENERATE $0,FLATTEN(TOKENIZE(rollingcnt));
DUMP D;