我有一个带有一些缺失值的Spark Dataframe.我想通过用该列的平均值替换缺失值来执行简单的估算.我对Spark很新,所以我一直在努力实现这个逻辑.这是我到目前为止所做的事情:
a)要为单个列(比如Col A)执行此操作,这行代码似乎有效:
df.withColumn("new_Col", when($"ColA".isNull, df.select(mean("ColA"))
.first()(0).asInstanceOf[Double])
.otherwise($"ColA"))
Run Code Online (Sandbox Code Playgroud)
b)但是,我无法弄清楚,如何对我的数据帧中的所有列执行此操作.我正在尝试Map函数,但我相信它遍历数据帧的每一行
c)SO上有类似的问题 - 这里.虽然我喜欢这个解决方案(使用聚合表和合并),但我非常想知道是否有办法通过遍历每一列来实现这一点(我来自R,所以使用更高阶函数循环遍历每一列lapply对我来说似乎更自然).
谢谢!