首页 > 解决方案 > Spark SQL - 类似忽略大小写

问题描述

我正在使用 spark SQL 并尝试使用rlike它来比较字符串工作正常,但是想了解如何忽略大小写。

这返回真

select "1 Week Ending Jan 14, 2018" rlike "^\\d+ Week Ending [a-z, A-Z]{3} \\d{2}, \\d{4}"

但是,这返回 False,

select "1 Week Ending Jan 14, 2018" rlike "^\\d+ week ending [a-z, A-Z]{3} \\d{2}, \\d{4}"

标签: apache-sparkapache-spark-sql

解决方案


Spark 使用标准的 Scala 正则表达式库,因此您可以在模式中内联处理标志,例如(?i)表示不区分大小写:

spark.sql("""select "1 Week Ending Jan 14, 2018" rlike "(?i)^\\d+ week ending [a-z, A-Z]{3} \\d{2}, \\d{4}"""").show()
+--------------------------------------------------------------------------------+
|1 Week Ending Jan 14, 2018 RLIKE (?i)^\d+ week ending [a-z, A-Z]{3} \d{2}, \d{4}|
+--------------------------------------------------------------------------------+
|                                                                            true|
+--------------------------------------------------------------------------------+

推荐阅读