2017-08-10 20 views
0

データフレームがあり、列の平均値を取得したい。私が次のようにしたら:変数の列の平均値または平均値を設定する

avg_NoPItems = df.groupBy().mean('NoPItems').collect() 

後で私はデータフレームオブジェクトを取得するので、値と比較することはできません。だから、平均をデータフレームではない数値としてどのように得ることができますか?

PD:私はこれを試してみましたが、動作しません:。。

avg_NoPItems = df.groupBy().mean('NoPItems').collect()[0] 
+0

あなたがして、グループを使用する理由、私はあなたが単に(平均( "NoPItems")を選択することができると思う:df.select(平均( "NoPItems")を意味する」(として。 ")))。first.getAs [ダブル]("平均 ") – Mehrez

+0

私はそれを使用することはできません、pysparkは' .... as( "mean"))...と無効なsintaxisを言った –

+1

申し訳ありません最初の["平均"] ' – Mehrez

答えて

0
  1. df.groupBy()( 'NoPItems')を意味し(コレクト)が行オブジェクトのリストを返します。

  2. df.groupBy()。平均( 'NoPItems')。collect()[0]は最初のRowオブジェクトを返します。

  3. df.groupBy()。mean( 'NoPItems')。collect()[0] [0]は、最初の行の最初の値を返します。目的の値を取得するためにインデックスを変更します。

希望します。

よろしく、

Neeraj

+0

これは溶液。ありがとう –