我有一个数据框df,并希望将所有不能为空的列都标记为“排除”列中的所有排除行。为此,我要遍历所有列并更新给定列为空的排除列。
def excludeAllEmpty() : Unit = {
def excludeEmpty(columnName: String): Unit = {
df = df.withColumn("Exclude",
when(col(columnName) === "" || col(columnName).isNull,
concat(col(columnName), lit(s"Excluded - ${columnName} empty"))))
}
fields.filter(!_.canBeEmpty).foreach(f => excludeEmpty(f.sourceName))
}
上面的代码未产生预期的结果。似乎是以下部分:
concat(col(columnName), lit(s"Excluded - ${columnName} empty")))
如何更新等于concat(previousValue,message)的列?