当语句使用火花sql时如何运行案例?



我想在火花SQL查询中运行一个案例当语句。

这是数据

object     green
______     _____
1           true
2           false
3           true

这是查询

%sql
select 
object,
case when green is true then 'A'
when green is false then 'B'
else 'C' end as case_when_statement
from my_table 

此查询给我此错误:mismatched input 'object' expecting <EOF>(line 3, pos 14)

我尝试用= TRUE= 'TRUE'is TRUE替换is true

尝试使用==true。

spark.sql("""select 
object,
case when green == true then 'A'
when green == false then 'B'
else 'C' end as case_when_statement
from tmp""").show() 
//+------+-------------------+
//|object|case_when_statement|
//+------+-------------------+
//|     1|                  A|
//|     2|                  B|
//|     3|                  A|
//+------+-------------------+

In dataframe Api:

使用===真实

df.withColumn("case_when_statement", when(col("green") === true,lit("A")).when(col("green")===false,lit("B")).otherwise(lit("c"))).show()
//+------+-----+-------------------+
//|object|green|case_when_statement|
//+------+-----+-------------------+
//|     1| true|                  A|
//|     2|false|                  B|
//|     3| true|                  A|
//+------+-----+-------------------+

最新更新