pyspark数据帧,groupby和列的计算方差

时间:2015-08-12 09:10:11

标签: python pyspark spark-dataframe pyspark-sql

我想通过pyspark数据帧进行分组并计算特定列的方差。对于平均而言,这很容易,可以这样做

from pyspark.sql import functions as func
AVERAGES=df.groupby('country').agg(func.avg('clicks').alias('avg_clicks')).collect()

但是对于方差,似乎在函数子模块中没有任何聚合函数(我也想知道为什么因为这是一个非常常见的操作)

2 个答案:

答案 0 :(得分:3)

您可以做的是将数据帧转换为RDD对象,然后将提供的方差函数用于RDD。

df1 = df.groupby('country').agg(func.avg('clicks').alias('avg_clicks'))
rdd = df1.rdd
rdd.variance()

答案 1 :(得分:1)

由于标准偏差是方差的平方根,因此纯PySpark数据帧解决方案是:

$("#canvas").Jcrop({
   onChange: selectcanvas,
   onSelect: selectcanvas,
   onRelease: clearcanvas,
   minSize: [45, 45],
   maxSize: [1200, 1200],
   bgColor: 'white',
   bgOpacity: .2,
   setSelect: [150, 150, 50, 50],
   aspectRatio: 1,
   allowSelect: false,
   boxWidth: crop_max_width,
   boxHeight: crop_max_height,
}, function () {
    jcrop_api = this;
});
   clearcanvas();
}