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

Hadoop 使用Pig将组数据反转为不同的记录,hadoop,apache-pig,Hadoop,Apache Pig,将组记录拆分为不同的记录: 例如: 输入:(A,(3,2,3)) 输出到3个新行: A、 三, A、 二, A、 三, 有谁能告诉我这样做的选项吗?问题是,当您将Arraylist的输出转换为tuple时,将很难实现您想要的结果,因此我建议使用这种方法,这样就很容易获得输出 在UDF代码中,不要创建Arraylist,而是将输出附加到以逗号分隔的字符串中,然后返回到pig脚本 UDF的最终输出应该是这样的,即字符串“3,2,3” 然后使用下面的代码获得结果 C = FOREACH B GENER

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


有谁能告诉我这样做的选项吗?

问题是,当您将Arraylist的输出转换为tuple时,将很难实现您想要的结果,因此我建议使用这种方法,这样就很容易获得输出

在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;

你能粘贴描述查询吗?。(3,2,3)是一根弦吗?嗨,湿婆。谢谢你的回答。请找到描述:grunt>描述C;C:{group:chararray,rollingCnt:()}输出是:(A,(5,2)),我想把数据分成每一行,就像第1:A行,第5行,第2:A行,第2行一样。如果您需要任何问题的详细信息,请告诉我。在您的自定义项中,是否在输出中附加“(“and”)”?还有,你能粘贴最后一行的pigscript吗?我在UDF中声明了List,并将元素添加到列表中,然后我转换成tuple并发送回pigscript。C=FOREACH B生成$0,NewRollingCount(BagToString($1))作为rollingCnt;转储C;我在当地尝试了这种方法,效果很好。