rga*_*ber 2 scala rlike apache-spark apache-spark-sql
我正在尝试在 Scala 代码中实现一个查询,该查询使用 Spark 上的正则表达式Column来查找列中包含特定值的所有行,例如:
column.rlike(".*" + str + ".*")
Run Code Online (Sandbox Code Playgroud)
str是一个字符串,可以是任何内容(除了null或empty)。
这对于我正在测试的基本查询来说效果很好。然而,作为 Spark / Scala 的新手,我不确定是否有任何特殊情况可能会破坏我需要处理的代码。是否有我需要转义的字符或需要担心的特殊情况?
这可能会被任何无效的正则表达式破坏。你甚至不必努力:
Seq("[", "foo", " ba.r ").toDF.filter($"value".rlike(".*" + "[ " + ".*")).show
Run Code Online (Sandbox Code Playgroud)
或者如果str它本身就是一个不平凡的模式,可能会给出意想不到的结果。对于像这样的简单情况,你会更好Column.contains:
Seq("[", "foo", " ba.r ").toDF.filter($"value".contains("[")).show
Seq("[", "foo", " ba.r ").toDF.filter($"value".contains("a.r")).show
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14756 次 |
| 最近记录: |