📅  最后修改于: 2023-12-03 14:45:52.908000             🧑  作者: Mango
在Pyspark中,经常需要对数据框(DataFrame)进行分组操作,一般需要对某些列进行分组,再对另一些列进行求和、平均等聚合操作,本文将介绍如何在Pyspark数据框中进行对另一列进行分组时求和列的操作。
首先,我们需要创建一个示例数据,用于后面的演示。
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('demo').getOrCreate()
data = [("A", 10), ("A", 20), ("A", 30), ("B", 5), ("B", 15), ("B", 25)]
columns = ["col1", "col2"]
df = spark.createDataFrame(data, columns)
df.show()
执行上述代码,输出结果如下:
+----+----+
|col1|col2|
+----+----+
| A| 10|
| A| 20|
| A| 30|
| B| 5|
| B| 15|
| B| 25|
+----+----+
我们创建了一个包含两列数据的数据框,其中第一列是col1,第二列是col2。我们将对col1进行分组,对col2进行求和操作。
在Pyspark中,可以使用groupBy和agg函数对数据框进行分组和聚合操作。具体实现如下:
from pyspark.sql.functions import sum
result = df.groupBy("col1").agg(sum("col2").alias("sum_col2"))
result.show()
执行上述代码,输出结果如下:
+----+--------+
|col1|sum_col2|
+----+--------+
| B| 45|
| A| 60|
+----+--------+
在上述代码中,我们使用groupBy函数按照col1列进行分组,然后使用agg函数进行聚合。其中,sum函数对col2列进行求和,别名设置为sum_col2。
通过本文的示例,我们介绍了如何在Pyspark数据框中进行对另一列进行分组时求和列的操作。同时,我们也学习了如何使用groupBy和agg函数进行分组和聚合操作。