不等式运算符无法解析boolean和int数据类型



我有一个包含4列的表Neg_ days,Account number(long)days_neg(int)days_pos(int)days_neg_pos(int)。后3列的值大多为空,其中一行包含零。

当我尝试执行比较运算符时:

spark.sql ="""
select nd.account_number
, case when days_neg > days_pos > days_neg_pos then 1 else 0 end as new_column
from Neg_days as nd
"""
spark.sql.createOrreplaceTempView("Accounts_down")

抛出的错误是:

couldnt resolve the (days_neg > days_pos > days_neg_pos) due to datatype mismatch.
Couldnt resolve bool and int 

我已经将数据类型更改为int,所以我无法理解bool数据类型来自

布尔数据类型来自比较操作。SQL不是Python,不能有A > B > C这样的快捷方式。这将被评估为(A > B) > C。如果A、B和C是整数,则最终会得到bool > int,从而产生错误。相反,您需要编写A > B AND B > C

相关内容

  • 没有找到相关文章

最新更新