这与apache pig的pivot表中的问题有关。输入数据如下
Id Name Value
1 Column1 Row11
1 Column2 Row12
1 Column3 Row13
2 Column1 Row21
2 Column2 Row22
2 Column3 Row23
并希望将输出作为
Id Column1 Column2 Column3
1 Row11 Row12 Row13
2 Row21 Row22 Row23
请让我知道如何在Pig。
2条答案
按热度按时间nqwrtyyt1#
不使用自定义项的最简单方法是按id分组,而不是在嵌套的foreach中为每个列名选择行,然后在generate中联接它们。请参见脚本:
输出:
另一种选择是编写一个udf,将bag{name,value}转换为map[],而不是使用列名作为键(例如vals#'column1')来获取值。
mwngjboj2#
不确定pig,但在spark中,您可以使用一行命令来完成此操作