使用相同条件在数据帧中替换两个不同的列值,并且在scala中的复杂度最小

问题描述 投票:0回答:1

withColumn可用于一次替换一列。我需要在相同条件下替换两个不同的列。

我与列一起使用了两次。但我需要对其进行优化。

val newDf: DataFrame = df.withColumn("a", when(col("b")===1, 0))
.withColumn("c", when(col("b")===1, "Y"))

第一

|一个| b | c |

| 5 | 1 | N |

预期:

|一个| b | c |

| 0 | 1 | Y |

scala dataframe apache-spark apache-spark-sql
1个回答
0
投票

尝试lit

val newDf: DataFrame = df.select("*", lit(when(col("b")===1, 0)), lit(when(col("b")===1, "Y"))).toDF(df.columns:+"b":+"c")
© www.soinside.com 2019 - 2024. All rights reserved.