Spark SQL CASE子句输入不匹配错误排查求助
错误原因分析及解决方法
这个错误是因为你的SQL语句里存在非标准空格字符(比如全角空格、不间断空格NBSP),Spark SQL的解析器无法识别这类空格,将其判定为非法输入。
从报错指向的位置CASE WHEN b.colA = 'ZZZ'能看出,WHEN与b.colA之间、b.colA与=之间的空格不是普通半角空格(ASCII 32),而是其他类型的空白字符,导致SQL解析器无法正确识别语法结构,从而抛出ParseException。
解决方法:
- 把这些异常空格全部替换成普通半角空格
- 直接手动重新敲写
CASE WHEN到='ZZZ'这部分内容,确保使用普通空格
修正后的SQL示例:
select CASE WHEN b.colA = 'ZZZ' THEN 'xxx' ELSE 'yyy' END from mytable b ;
内容的提问来源于stack exchange,提问作者bayerb
相关产品推荐
相关产品推荐

