【发布时间】:2020-11-12 04:08:10
【问题描述】:
我正在尝试在我拥有的 DF 上做一个案例,但我遇到了一个错误。我想用内置的 spark 函数来实现这个——withcolumn,when,否则:
CASE WHEN vehicle="BMW"
AND MODEL IN ("2020","2019","2018","2017")
AND value> 100000 THEN 1
ELSE 0 END AS NEW_COLUMN
目前我有这个
DF.withColumn(NEW_COLUMN, when(col(vehicle) === "BMW"
and col(model) isin(listOfYears:_*)
and col(value) > 100000, 1).otherwise(0))
但由于数据类型不匹配(布尔值和字符串)而出现错误...我了解我的条件返回布尔值和字符串,这导致了错误。执行这样的案例的正确语法是什么?另外,我使用 && 而不是 and 但第三个 && 给了我一个“无法解析符号 &&”
感谢您的帮助!
【问题讨论】:
-
所以
NEW_COLUMN、vehicle、model等是String类型的变量吗?如果是这样,则此代码运行良好。你有implicits导入了吗?
标签: scala dataframe apache-spark case