scala - 如何在 Spark Scala 中更新 DataFrame 的多列
问题描述
我有带有列(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 。
解决方案
推荐阅读
- python - Matplotlib.pyplot.scatter x 和 y 值必须相同大小
- python - 如何调整存储在我的 SQLite 数据库中的 BLOB 图像的大小?
- html - 为什么第一组文本与其他文本不对齐?
- javascript - Material UI Menu Using Routes 在导航更改时不会滚动到顶部
- python - 相同的特征但不同的目标值
- unity3d - 团结:生成敌人有效,但不可见
- three.js - three.js - 把烟放在盒子里
- asp.net-core - ASP Net Core - 跨视图临时存储数据
- python - 正则表达式 - 第一个字母大写,后跟小写字母数字
- scheme - 返回参数平均值的方案函数