pyspark dataframe 转置怎么弄
时间: 2023-09-02 13:12:01 浏览: 151
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
5星 · 资源好评率100%
可以使用`pivot`函数来实现Pyspark DataFrame的转置。具体步骤如下:
1. 首先,需要将需要转置的列作为行索引,将需要保留的列作为列索引。可以使用`groupBy`和`agg`函数分组并聚合数据,以得到转置后的结果。
2. 使用`pivot`函数来将列索引转换为行索引,将行索引转换为列索引。
以下是示例代码:
```
from pyspark.sql.functions import *
from pyspark.sql.types import *
# 创建一个示例DataFrame
data = [("Alice", "Math", 80), ("Alice", "English", 75), ("Bob", "Math", 90), ("Bob", "English", 80)]
df = spark.createDataFrame(data, ["Name", "Subject", "Score"])
# 使用groupBy和agg函数分组并聚合数据
pivoted = df.groupBy("Name").pivot("Subject").agg(first("Score"))
# 显示转置后的结果
pivoted.show()
```
这将输出以下结果:
```
+-----+-----+-------+
| Name|English| Math|
+-----+-------+-------+
|Alice| 75| 80|
| Bob| 80| 90|
+-----+-------+-------+
```
在这个示例中,我们将“Name”列作为行索引,将“Subject”列作为列索引,将“Score”列作为值。`agg`函数使用`first`函数来聚合数据,以保留每个分组中的第一个值。然后,我们使用`pivot`函数将列索引转换为行索引,将行索引转换为列索引,从而得到转置后的结果。
阅读全文