You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark SQL多条件比较报错:无法解析布尔与整数类型不匹配

问题原因与解决方案
  • 错误根源:Spark SQL不支持a > b > c这类连续比较语法。第一个表达式days_neg > days_pos会返回布尔值(true/false),后续用这个布尔值和int类型的days_neg_pos做比较,就会触发"布尔与int类型不匹配"的报错,这就是错误的来源。

  • 修正后的SQL语句:
    将连续比较拆分为两个独立条件,用AND逻辑连接:

    SELECT nd.account_number
           , CASE WHEN days_neg > days_pos AND days_pos > days_neg_pos THEN 1 ELSE 0 END AS new_column
    FROM Neg_days AS nd
    
  • 额外注意:null值处理
    由于表中后3列大多为null,null参与比较运算时结果会是null,最终会进入ELSE分支返回0。如果需要针对null值做特殊处理,可以添加null判断或给null设置默认值,示例:

    SELECT nd.account_number
           , CASE WHEN days_neg IS NOT NULL AND days_pos IS NOT NULL AND days_neg_pos IS NOT NULL 
                   AND days_neg > days_pos AND days_pos > days_neg_pos THEN 1 ELSE 0 END AS new_column
    FROM Neg_days AS nd
    

内容的提问来源于stack exchange,提问作者Burt Ox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:22:34