📜  pyspark 平均分组依据 - Python (1)

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

pyspark 平均分组依据 - Python

在pyspark中,我们可以使用groupBy函数实现按照某个条件进行分组,并使用agg函数进行聚合计算。其中,agg函数中的avg函数可以用来计算平均值。

例如,我们有一个包含商品信息的DataFrame,其中有商品名称和价格两列数据。我们想要按照商品名称进行分组,计算每种商品的平均价格。我们可以使用以下代码来实现:

from pyspark.sql.functions import avg

# 创建DataFrame
data = [("apple", 3), ("orange", 4), ("banana", 2), ("apple", 4), ("orange", 5)]
df = spark.createDataFrame(data, ["item", "price"])

# 按照商品名称分组,计算平均价格
avg_price = df.groupBy("item").agg(avg("price").alias("avg_price"))

# 显示结果
avg_price.show()

这段代码首先使用createDataFrame函数创建了一个DataFrame,其中包含商品名称和价格两列数据。然后,使用groupBy函数按照商品名称进行分组,并使用agg函数计算每种商品的平均价格。最后,使用show函数显示结果。

输出结果如下:

+------+---------+
|  item|avg_price|
+------+---------+
| banana|      2.0|
| apple|      3.5|
|orange|      4.5|
+------+---------+

可以看到,每种商品的平均价格被正确地计算出来了。

在这个例子中,我们使用了avg函数来计算平均值。除了平均值以外,agg函数还支持其他聚合函数,如sum、max、min等等。根据需要选择相应的聚合函数即可。

综上所述,pyspark中的groupBy函数和agg函数可以方便地实现按照某个条件进行分组,并进行聚合计算。在实际应用中,这些函数可以帮助我们快速地分析和计算数据,提高工作效率。