2016-11-07 10 views
0

私は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) 

以下のようにやっていることについては、私のデータフレーム

あり、この結果を達成するための何か良い方法はあります。 pyspark documentationを参照してください。これは、グループ化した後、平均値を得るために非常に簡単です

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 

答えて

0

サンプルデータは次のようです。私はあなたが質問で定義したSQLは、同じように働くべきであると信じていますが、以下のようなものを試してみてください。

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