我想知道是否有可能在apachepig中一次透视一个表。
输入:
Id Column1 Column2 Column3
1 Row11 Row12 Row13
2 Row21 Row22 Row23
输出:
Id Name Value
1 Column1 Row11
1 Column2 Row12
1 Column3 Row13
2 Column1 Row21
2 Column2 Row22
2 Column3 Row23
真正的数据有几十列。
我可以用awk一次性完成,然后用hadoop流运行它。但我的大部分代码是apachepig,所以我想知道是否有可能在pig中高效地完成它。
2条答案
按热度按时间5sxhfpxr1#
你可以用两种方法:1。编写一个返回一包元组的udf。它将是最灵活的解决方案,但需要java代码;2像这样写一个僵硬的脚本:
运行此脚本得到以下结果:
ktca8awb2#
我从id 1中删除了col3,以显示如何处理可选(null)数据
id名称值1 column1 row11 1 column2 row12 2 column1 row21 2 column2 row22 2 column3 row23
--Pig脚本.pig
结果:
(1,第11行,第12行,空)
(第2行,第21行,第22行,第23行)