当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PySpark SQL Functions mean方法用法及代码示例


PySpark SQL 函数的 mean(~) 方法返回指定列中的平均值。

参数

1.col | stringColumn

要在其中获取平均值的列。

返回值

PySpark 列 (pyspark.sql.column.Column)。

例子

考虑以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", 25], ["Bob", 30]], ["name", "age"])
df.show()



+----+---+
|name|age|
+----+---+
|Alex| 25|
| Bob| 30|
+----+---+

获取 PySpark 列的平均值

要获取平均值 age

import pyspark.sql.functions as F
df.select(F.mean("age")).show()



+--------+
|avg(age)|
+--------+
|    27.5|
+--------+

要将 age 的平均值作为整数获取:

list_rows = df.select(F.mean("age")).collect()
list_rows[0][0]



27.5

在这里,我们使用 collect() 方法将从 select(~) 返回的 PySpark DataFrame 转换为 Row 对象列表。该列表的大小保证为 1,因为 mean(~) 将列值缩减为单个数字。为了访问 Row 对象的内容,我们使用另一个 [0]

获取PySpark中每个组的平均值

考虑以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", 20, "A"],\
                            ["Bob", 30, "B"],\
                            ["Cathy", 50, "A"]],
                            ["name", "age", "class"])
df.show()



+-----+---+-----+
| name|age|class|
+-----+---+-----+
| Alex| 20|    A|
|  Bob| 30|    B|
|Cathy| 50|    A|
+-----+---+-----+

要获取每个 class 的平均值 age

df.groupby("class").agg(F.mean("age").alias("MEAN AGE")).show()



+-----+--------+
|class|MEAN AGE|
+-----+--------+
|    A|    35.0|
|    B|    30.0|
+-----+--------+

在这里,我们使用 alias("MEAN AGE") 为聚合的 age 列分配标签。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark SQL Functions | mean method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。