2017-08-10 77 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 [Double](」mean「) – Mehrez

+0

我不能使用它,pyspark用'.... as(」mean「))表示無效的sintaxis ...' –

+1

抱歉,我沒有使用Scala中,爲蟒蛇,我認爲是(但不知道):'df.select(平均( 「NoPItems」)別名( 「中庸」)。)第[ 「的意思是」]' – Mehrez

回答

0
  1. df.groupBy()的意思是( 'NoPItems')收集()將返回行對象的列表。 ('NoPItems')。collect()[0]將返回第一個Row對象。 ('NoPItems')。collect()[0] [0]將返回第一行中的第一個值。更改索引以獲取所需的值。

希望這會有所幫助。

問候,

Neeraj

+0

這是解。謝謝 –