📌  相关文章
📜  Pyspark数据框:对另一列进行分组时求和列(1)

📅  最后修改于: 2023-12-03 14:45:52.908000             🧑  作者: Mango

Pyspark数据框:对另一列进行分组时求和列

在Pyspark中,经常需要对数据框(DataFrame)进行分组操作,一般需要对某些列进行分组,再对另一些列进行求和、平均等聚合操作,本文将介绍如何在Pyspark数据框中进行对另一列进行分组时求和列的操作。

1. 创建示例数据

首先,我们需要创建一个示例数据,用于后面的演示。

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进行求和操作。

2. 对另一列进行分组时求和列

在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。

3. 结论

通过本文的示例,我们介绍了如何在Pyspark数据框中进行对另一列进行分组时求和列的操作。同时,我们也学习了如何使用groupBy和agg函数进行分组和聚合操作。