您可以使用内置函数来获取聚合统计信息。以下是如何获得均值和标准偏差。
from pyspark.sql.functions import mean as _mean, stddev as _stddev, col
df_stats = df.select(
_mean(col('columnName')).alias('mean'),
_stddev(col('columnName')).alias('std')
).collect()
mean = df_stats[0]['mean']
std = df_stats[0]['std']
请注意,有三种不同的标准偏差功能。从文档中我使用的文档(stddev)返回以下内容:
聚合函数:返回无偏样本标准差
组中的表达
您也可以使用describe()方法:
df.describe().show()
更新:这是您处理嵌套数据的方法。
使用explode将值提取到单独的行中,然后调用mean和stddev,如上所示。
这是一个MWE:
from pyspark.sql.types import IntegerType
from pyspark.sql.functions import explode, col, udf, mean as _mean, stddev as _stddev
# mock up sample dataframe
df = sqlCtx.createDataFrame(
[(680, [[691,1], [692,5]]), (685, [