【发布时间】:2016-11-16 07:47:15
【问题描述】:
如何创建一个 UDF 以编程方式将火花数据框中每列中的空值替换为列平均值。例如,在示例数据 col1 中,空值的值为 ((2+4+6+8+5)/5) = 5。
示例数据:
col1 col2 col3
2 null 3
4 3 3
6 5 null
8 null 2
null 6 4
5 2 8
所需数据:
col1 col2 col3
2 4 3
4 3 3
6 5 4
8 4 2
5 6 4
5 2 8
【问题讨论】:
-
在纯 SQl 中,这可以通过交叉连接每个列的表并使用 coalesce(col1, crossJoinTBL.Col1Avg) 来完成,但这并不是真正的 UDF。如果您要传入表列并使用动态 SQL 来计算平均值并再次使用可能有效的合并...
标签: java sql scala apache-spark