获取数据框中列的平均值

时间:2016-11-07 18:38:18

标签: python-2.7 pyspark

我正在使用pyspark 1.6python 2.7。 我有一个数据框,我希望在一组之后得到另一列的特定列的平均值。

data是我的数据框

为此我正在做如下

data.registerTempTable('dataframe')
query = 'select mean(Weight) as Weight, b, s from dataframe group by b, s'
df = sqlContext.sql(query)

有没有什么好方法可以达到这个结果。

示例数据如下:

s       b       Weight
7801    d9b4    0.12911255
7801    6b11    0.128151033
7801    dd1f    0.12791147
7801    c802    0.134295454
7801    1294    0.128722551
7801    4203    0.134276383
7801    accc    0.134290742
7801    aab9    0.129347649
7801    4546    0.126628807

1 个答案:

答案 0 :(得分:0)

分组后得到一个意思是非常微不足道的:见pyspark documentation。尝试类似下面的内容,但我相信你在问题中定义的sql也应该接近原样工作。

data.groupBy('b', 's').agg({'Weight': 'mean'})
>>> # [Row(b=u'6b11', s=u'7801', avg(Weight)=0.128151033), ...]