我在 pyspark 中有一个数据框,如下所示。我想在 data frame
groupby 和
category 列的计数
df.show()
+--------+----+
|category| val|
+--------+----+
| cat1| 13|
| cat2| 12|
| cat2| 14|
| cat3| 23|
| cat1| 20|
| cat1| 10|
| cat2| 30|
| cat3| 11|
| cat1| 7|
| cat1| 8|
+--------+----+
res = df.groupBy('category').count()
res.show()
+--------+-----+
|category|count|
+--------+-----+
| cat2| 3|
| cat3| 2|
| cat1| 5|
+--------+-----+
我得到了我想要的结果。现在我想计算类别的平均值。 data frame 有 3 天的记录。我想计算这 3 天的平均计数。
我想要的结果如下。我基本上想做 count/no.of.days
+--------+-----+
|category|count|
+--------+-----+
| cat2| 1|
| cat3| 1|
| cat1| 2|
+--------+-----+
我该怎么做?
请您参考如下方法:
我相信你想要的是
from pyspark.sql import functions as F
df.groupby('category').agg((F.count('val') / 3).alias('average'))
