否则数据帧火花的情况

sca*_*ode 2 scala apache-spark

我写了这个:

val result = df.withColumn("Ind", when($"color" === "Green", 1).otherwise(0))
Run Code Online (Sandbox Code Playgroud)

我想将条件扩展$"color" === "Green"$"color" in ["GREEN", "RED", "YELLOW"]

知道该怎么做吗?

Zob*_*san 5

你可以使用

$"color".isin("GREEN","RED","YELLOW")

代码示例:

val df2 = df.withColumn("Ind", 
when($"color".isin("GREEN","RED","YELLOW"), 1).otherwise(0))
df2.show(false)
Run Code Online (Sandbox Code Playgroud)

输出:

+------+---+
| color|Ind|
+------+---+
|   RED|  1|
| GREEN|  1|
|YELLOW|  1|
|  PINK|  0|
+------+---+
Run Code Online (Sandbox Code Playgroud)

快速搜索发现堆栈溢出中已经回答了类似的问题:Spark SQL - IN 子句