有如下场景:
val df = // dataset have columns like "col", "col_a", "col_b".
val type = "" //dynamicLLT passed by user
//based on this, need to add one more colum "value" based "col" value.
val valueDs = df
.withColumn("type", lit(type).cast(StringType))
.withColumn("value",
when(col("cal").equalTo(lit("A_B")),concat_ws("_",col("col_a"), col("col_b"))).
when(col("cal").equalTo(lit("A")),concat(col("col_a")))
);
需要根据“类型”选择其他列,并适当填充“值”列。
但是当我运行“”列(“cal”)。==(“a“)”如果由于字段“col\u b”不可用而失败。
那么这里怎么了?为什么它要找不在那里的“col\u b”。如何修复when子句。
1条答案
按热度按时间esbemjvw1#
你能试试下面吗。