在 pyspark 中分组数据

Grouping data in pyspark

我有一个包含多列的 spark DataFrame。我想根据一列对行进行分组,然后找到其中一列的平均值。

示例:

column x | column y
    1    |    2
    1    |    8
    2    |    6
    2    |    4
    3    |    1
    3    |    1
    3    |    1
    3    |    1

期待新的数据帧:

 column x | mean
    1    |    5
    2    |    5
    3    |    1   

谢谢

下面的代码片段可以工作。

>>> df = spark.createDataFrame([(1,2),(1,8),(2,6),(2,4),(3,1),(3,1),(3,1),(3,1)], ["col1", "col2"])

>>> df.groupBy("col1").agg({"col2": "avg"}).show()
+----+---------+
|col1|avg(col2)|
+----+---------+
|   1|      5.0|
|   3|      1.0|
|   2|      5.0|
+----+---------+