将组记录拆分为不同的记录: 例如: 输入:(A,(3,2,3)) 输出到3个新行: A,3 A2 A,3
任何人都可以告诉我这样做的选择吗?
答案 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;