use*_*036 3 regex contains pyspark spacy
使用 Pyspark 和 spacy 包并拥有一个带有标记的数据集,我试图过滤掉具有包含符号或非字母数字字符的标记的任何行。
the
house
#
was
in
the)
400s
w-ow
$crazy
Run Code Online (Sandbox Code Playgroud)
应该只返回
the
house
was
in
400s
Run Code Online (Sandbox Code Playgroud)
我尝试使用类似的东西
F.regexp_extract(F.col('TOKEN'), '[^[A-Za-z0-9] ]', 0),但我想搜索整个标记而不仅仅是索引 0。我考虑过使用 contains() 语句,但这似乎我必须做大量不同的 or 语句来捕获我想要的所有不同符号排除
看一下这个。您可以使用rlikefunction 并negation(~)在过滤器中使用。
from pyspark.sql import functions as F
#INPUT DF
+------+
| text|
+------+
| the|
| house|
| #|
| was|
| in|
| the)|
| 400s|
| w-ow|
|$crazy|
+------+
df.filter(~F.col("text").rlike("[^0-9A-Za-z]")).show()
#OUTPUT DF
# +-----+
# | text|
# +-----+
# | the|
# |house|
# | was|
# | in|
# | 400s|
# +-----+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4101 次 |
| 最近记录: |