我是火花新手,但是我找不到一个简单问题的答案:如何将行改为列?例如,我有如下数据:
类型Col1 | Col2 | Col3 | ... | Col60
1 | 12 | 3 | 4 | ... | 87
2 | 1 | 5 | 6 | ... | 90
我想将其更改为
类型| ColName |值
1 | Col1 | 12
1 | Col2 | 3
1 | Col3 | 4
...
1 | Col60 | 87
2 | Col1 | 1
2 | Col2 | 5
2 | Col3 | 6
...
2 | Col60 | 90
我尝试搜索许多地方,但是没有完全符合我需要的答案。
答案 0 :(得分:1)
在Hive中,可以通过将列放入lateral view
中来将explode
与map
一起使用。
select type,colName,val
from tbl
lateral view explode(map('col1',col1,'col2',col2,'col3',col3)) t as colName,val --fill it with all the columns from the table
Spark SQL还可以使用lateral view
和explode
。