pyspark对表转置
时间: 2023-11-23 18:08:19 浏览: 83
用C语言实现矩阵的转置
在Pyspark中,可以使用`pivot`函数来对表进行转置操作。`pivot`函数需要指定三个参数:`pivot_col`,`values`和`aggfunc`。其中,`pivot_col`是需要转置的列名,`values`是需要聚合的列名,`aggfunc`是聚合函数。下面是一个示例代码:
```python
from pyspark.sql.functions import *
from pyspark.sql.types import *
# 创建一个示例数据集
data = [("Alice", "Math", 95),
("Alice", "English", 85),
("Bob", "Math", 90),
("Bob", "English", 80)]
df = spark.createDataFrame(data, ["Name", "Subject", "Score"])
# 对表进行转置操作
pivot_df = df.groupBy("Name").pivot("Subject").agg(avg("Score"))
# 显示转置后的表
pivot_df.show()
```
在上面的示例代码中,我们创建了一个包含学生姓名、科目和成绩的数据集,并使用`pivot`函数将其转置。具体来说,我们以`Name`列为分组依据,将`Subject`列中的值作为新表的列名,将`Score`列中的值作为新表的值,并使用`avg`函数对值进行聚合。最终得到的转置后的表如下所示:
```
+-----+----+-------+
| Name|Math|English|
+-----+----+-------+
|Alice|95.0| 85.0|
| Bob|90.0| 80.0|
+-----+----+-------+
```
阅读全文