📅  最后修改于: 2023-12-03 14:45:52.766000             🧑  作者: Mango
在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函数可以方便地实现按照某个条件进行分组,并进行聚合计算。在实际应用中,这些函数可以帮助我们快速地分析和计算数据,提高工作效率。