2017-09-17 36 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

相关问题