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

Spark SQL中ILIKE关键字报错、LIKE运行正常是什么原因?如何解决?

问题原因

Apache Spark 从3.3.0版本才开始原生支持ILIKE(不区分大小写的LIKE匹配)语法,你当前使用的Spark版本低于3.3.0,SQL解析器无法识别ILIKE关键字,因此抛出语法匹配错误。

解决方案
  • 方案1:升级Spark版本
    若运行环境允许,将Spark版本升级到3.3.0及以上,即可直接使用ILIKE语法执行查询:

    results = spark.sql("select * from df_sql_view where name ILIKE '%i%'")
    
  • 方案2:通过大小写转换函数兼容低版本
    若无法升级Spark版本,可以将待匹配字段和匹配内容统一转为大写/小写后,使用普通LIKE实现完全相同的不区分大小写匹配效果:

    # 统一转为小写匹配
    results = spark.sql("select * from df_sql_view where lower(name) LIKE '%i%'")
    # 也可选择统一转为大写匹配
    results = spark.sql("select * from df_sql_view where upper(name) LIKE '%I%'")
    
  • 方案3:使用正则匹配实现
    借助Spark支持的rlike正则匹配函数,通过正则标识(?i)开启不区分大小写匹配,也可实现对应效果:

    results = spark.sql("select * from df_sql_view where name rlike '(?i).*i.*'")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:06:03