蜂巢/猪 - 列到行转换

时间:2018-06-06 05:39:32

标签: hive apache-pig hiveql

输入数据

**Col1| Col2 | Col3 | Col4**

 2  | 500 | 50 | 100

如何将列转换为hive或pig中的行?

预期输出:

**Column  | Value**

Col1  |   2

Col2  | 500

Col3  | 50

Col4  | 100

2 个答案:

答案 0 :(得分:1)

您正在寻找UNPIVOT。

SELECT 'Col1' as 'Column' ,Col1  AS Value FROM htable
UNION ALL
SELECT 'Col2' as 'Column' ,Col3  AS Value FROM htable
UNION ALL
SELECT 'Col3' as 'Column' ,Col3  AS Value FROM htable
UNION ALL
SELECT 'Col4' as 'Column' ,Col4  AS Value FROM htable

答案 1 :(得分:1)

SELECT col1     ,COL2 FROM(     选择地图(' Col1',Col1,' Col2',Col2,' Col3',Col3,' Col4',Col1)AS tmp     来自mytable     )mytab LATERAL VIEW EXPLODE(mytab.tmp)explode_tmp AS col1     ,COL2