Apache spark 如何在spark/scala中将行转换为列?

Apache spark 如何在spark/scala中将行转换为列?,apache-spark,hive,Apache Spark,Hive,我是spark的新手,但我找不到一个简单问题的答案:如何将行更改为列?例如,我有如下数据: 类型| Col1 | Col2 | Col3 |……|Col60 1 | 12 | 3 | 4 |... | 87 2 | 1 | 5 | 6 |... | 九十 我想把它改成喜欢的 键入| ColName |值 1 | Col1 | 12 1 | Col2 | 3 1 | Col3 | 4 … 1 | Col60 | 87 2 | Col1 | 1 2 | Co

我是spark的新手,但我找不到一个简单问题的答案:如何将行更改为列?例如,我有如下数据:
类型| Col1 | Col2 | Col3 |……|Col60
1 | 12 | 3 | 4 |... | 87
2 | 1 | 5 | 6 |... | 九十

我想把它改成喜欢的

键入| 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


我试着搜索了很多地方,但没有找到与我所需要的完全相同的答案。

在Hive中,您可以通过将列放入
地图中来使用
侧视图
分解

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还有
侧面视图
分解视图
,可以使用。

谢谢!!但是我怎样才能在spark中保存表格呢?使用hiveContext.sql(“*”),是否有一种可编程的方法来实现这一点?