我正在尝试将表格的列转置为行
我有一张看起来像这样的桌子:
+-----+-----+-----+-------+
|Date |col_1|col_2|col_...|
+-----+-------------------+
| 1 | 0.0| 0.6| ... |
| 2 | 0.6| 0.7| ... |
| 3 | 0.5| 0.9| ... |
| ...| ...| ...| ... |
结果应该是这样的:
+-----+--------+-----------+
|Date |Location| Value |
+-----+--------+-----------+
| 1 | col_1| 0.0|
| 1 | col_2| 0.6|
| ...| ...| ...|
| 2 | col_1| 0.6|
| 2 | col_2| 0.7|
| ...| ...| ...|
| 3 | col_1| 0.5|
| 3 | col_2| 0.9|
| ...| ...| ...|
在 Pandas 中,我有以下代码可以满足我的需要
df = df.melt(id_vars=["Date"],
var_name="Location",
value_name="Value")
Pyspark 中的等效代码是什么?
我在这里看到了类似的问题:Transpose column to row with Spark
但是所有答案都假设您可以列出所有列,就我而言,我有数千列,列名称是纬度、经度坐标与其他字符串的混合。
是否有等效的方法来实现 pandas 代码在 pyspark 中的功能?
spark 3.4+ 中存在相同的函数pyspark.sq.DataFrale.melt并且它有一个接近的命名法:
df = df.melt(ids=["Date"],
values=(col_1,col_2,...),
variableColumnName="Location",
valueColumnName="Value")