在pyspark中分组数据

时间:2017-07-20 14:00:17

标签: python pyspark pyspark-sql

我有一个包含多列的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   

TKS

1 个答案:

答案 0 :(得分:0)

以下代码段可行。

>>> 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|
+----+---------+