输入数据
**Col1| Col2 | Col3 | Col4**
2 | 500 | 50 | 100
如何将列转换为hive或pig中的行?
预期输出:
**Column | Value**
Col1 | 2
Col2 | 500
Col3 | 50
Col4 | 100
答案 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