我想按pyspark数据帧分组,并计算特定列的方差。对于一般人来说,这很容易,可以这样做
from pyspark.sql import functions as func
AVERAGES=df.groupby('country').agg(func.avg('clicks').alias('avg_clicks')).collect()然而,对于方差,函数子模块中似乎没有任何聚合函数(我也想知道为什么,因为这是一个相当常见的操作)。
发布于 2015-08-12 21:40:13
您可以做的是将数据帧转换为RDD对象,然后使用为RDDs提供的方差函数。
df1 = df.groupby('country').agg(func.avg('clicks').alias('avg_clicks'))
rdd = df1.rdd
rdd.variance()发布于 2017-03-14 18:44:39
由于标准差是方差的平方根,因此纯PySpark数据帧解决方案为:
df = sc.parallelize(((.1, 2.0), (.3, .2))).toDF()
df.show()
varianceDF = df.select(stddev('_1') * stddev('_1'))
varianceDF.show()https://stackoverflow.com/questions/31960750
复制相似问题