我用的是PySpark。rdd有一列具有浮点值,其中有些行丢失。缺少的行只是空字符串“”。在
现在,我想在空字符串的位置写出列的平均值和中值,但是如何计算平均值呢?在
因为rdd平均值()函数无法处理包含空字符串的浮动列。在
import numpy as np
def replaceEmpty(x):
if x=='':
x = np.nan
return x
def fillNA(x):
mu = np.nanmean(np.array(x))
if x==np.nan:
x = mu
return x
data = data.map(lambda x: replaceEmpty(x))
data = data.map(lambda x: fillNA(x))
但这种方法并不真正奏效!在
最终用以下方法解决: Fill Pyspark dataframe column null values with average value from same column
我使用了sqlContext而不是SparkContext。以前,我使用的是:
我改成了:
^{pr2}$因为,sqlContext似乎有更多的功能来处理NA值。在
相关问题 更多 >
编程相关推荐