2017-09-17 69 views
0

火花中是否有任何函數可以通過忽略空值/ NaN來計算數據幀中列的平均值?和R一樣,我們可以傳遞一個選項,比如na.rm = TRUE。火花數據框中的列的平均值爲空

當我使用NaN在列上應用avg()時,我只能獲得NaN。

回答

2

你可以做到以下幾點:

df.na.drop(Seq("c_name")).select(avg(col("c_name"))) 
-1

這似乎爲我星火2.1.0工作:

In [16]: mydesc=[{'name':'Fela', 'age':46}, 
       {'name':'Menelik','age':None}, 
       {'name':'Zara','age':39}] 
In [17]: mydf = sc.parallelize(mydesc).toDF() 
In [18]: from pyspark.sql.functions import avg 
In [20]: mydf.select(avg('age')).collect()[0][0] 
Out[20]: 42.5 
+0

它不會工作。專注於「通過忽略....../NaN」 – zero323

相關問題