开发者社区> 问答> 正文

spark sql是否区分大小写?

看起来spark sql对“喜欢”的查询区分大小写,对吧?

spark.sql("select distinct status, length(status) from table")
返回

Active|6

spark.sql("select distinct status from table where status like '%active%'")
不返回任何值

spark.sql("select distinct status from table where status like '%Active%'")
返回

Active

展开
收起
社区小助手 2018-12-05 14:17:19 10085 0
2 条回答
写回答
取消 提交回答
  • 是否与字段类型有关系呢,在es中keyword是明确的内容,text是会分词的,我觉得应该spark也有类似的东西

    2021-10-12 11:45:04
    赞同 展开评论 打赏
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    是的,Spark区分大小写。对于字符串比较,大多数RDBMS默认区分大小写。如果您想要不区分大小写,请尝试rlike或将列转换为大写/小写。

    scala> val df = Seq(("Active"),("Stable"),("Inactive")).toDF("status")
    df: org.apache.spark.sql.DataFrame = [status: string]

    scala> df.createOrReplaceTempView("tbl")

    scala> df.show
    status
    Active
    Stable
    Inactive
    scala> spark.sql(""" select status from tbl where status like '%Active%' """).show
    status
    Active
    scala> spark.sql(""" select status from tbl where lower(status) like '%active%' """).show
    status
    Active
    Inactive

    scala>

    2019-07-17 23:18:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载