您可以使用pandas_api()
在Spark DataFrame上启用Pandas API(不要与to_pandas()
混淆):
sdf = (sdf.pandas_api()
.melt('Month', var_name='Col_name', value_name='Value')
.to_spark())
输出:
>>> sdf.show()
+-----+--------+-----+
|Month|Col_name|Value|
+-----+--------+-----+
| 1| Col1| 10|
| 1| Col2| 20|
| 1| Col3| 30|
| 1| Col4| 40|
| 2| Col1| 20|
| 2| Col2| 30|
| 2| Col3| 50|
| 2| Col4| 60|
| 3| Col1| 30|
| 3| Col2| 50|
| 3| Col3| 60|
| 3| Col4| 70|
| 4| Col1| 30|
| 4| Col2| 40|
| 4| Col3| 50|
| 4| Col4| 80|
+-----+--------+-----+