作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在我的 Spark SQL/Dataframe 查询中使用 RLIKE 中的单词边界,但它似乎不起作用。
from pyspark.sql.functions import *
usersDf.select('id', 'display_name', 'location') \
.where(expr('location RLIKE "\\b(United States|America|USA|US)\\b"')) \
.limit(20) \
.show(20, False)
怎么了?我也试过 \b
...
最佳答案
你逃得还不够。
df = spark.createDataFrame([" US ", "FUSS"], "string")
df.where("value RLIKE '\\\\bUS\\\\b'").show()
# +-----+
# |value|
# +-----+
# | US |
# +-----+
df.where("value NOT RLIKE '\\\\bUS\\\\b'").show()
# +-----+
# |value|
# +-----+
# | FUSS|
# +-----+
应该是这样
'location RLIKE "\\\\b(United States|America|USA|US)\\\\b"'
如果您检查执行计划,就会看到这一点。你的
df.where("value NOT RLIKE '\\bUS\\b'").explain()
# == Physical Plan ==
# *(1) Filter (isnotnull(value#33) && NOT value#33 RLIKEU)
# +- Scan ExistingRDD[value#33]
与正确的相比:
df.where("value NOT RLIKE '\\\\bUS\\\\b'").explain()
# == Physical Plan ==
# *(1) Filter (isnotnull(value#33) && NOT value#33 RLIKE \bUS\b)
# +- Scan ExistingRDD[value#33]
关于apache-spark - 如何在 PySpark SQL/Dataframes 中的 RLIKE 中使用单词边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838591/
我是一名优秀的程序员,十分优秀!