我有带有列(A,B,C,D,E)的DataFrame。有一些行的C和D值有误。我还有另一个Map,它的信息正确(A->(C,D))。如何更正C和D列的值?
我知道我们可以使用withColumn方法更新一列的值。所以我两次使用withColumn来更新两列。
fixCUdf(A: Long, C: Long): Long = {
if (newValuesMap.contains(A))
newValuesMap(A)._1
else
C
}
fixDUdf(A: Long, D: Long): Long = {
if (newValuesMap.contains(A))
newValuesMap(A)._2
else
D
}
dataFrame.withColumn("C", fixCUdf(col("A"), col("C")))
dataFrame.withColumn("D", fixCUdf(col("A"), col("D")))
是否有更好的方法?我不必多次调用fixXUdf。