我想通过pyspark数据帧进行分组并计算特定列的方差。对于平均而言,这很容易,可以这样做
from pyspark.sql import functions as func
AVERAGES=df.groupby('country').agg(func.avg('clicks').alias('avg_clicks')).collect()
但是对于方差,似乎在函数子模块中没有任何聚合函数(我也想知道为什么因为这是一个非常常见的操作)
答案 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();
}