在PySpark和StartWith中创建Rike

xqk2d5yq  于 2022-11-01  发布在  Spark
关注(0)|答案(1)|浏览(81)

这是我输入的数据:

from pyspark.sql import functions as F
DF = [('1',  'Higher up it goes'),
      ('2',  'It is short'),
      ('3',  'It was superhigh'),
      ('4',  'She is tall'),]

DF = spark.sparkContext.parallelize(DF).toDF(['id', 'text'])

我只想保留 text 包含单词tall或high的行,
我的尝试是:
第一个
但我不想包括“超高”这个词,我只想让这个词以“高”或“高”这个词开头
我想要的输出是:

+---+-----------------+
| id|             text|
+---+-----------------+
|  1|Higher up it goes|
|  4|      She is tall|
+---+-----------------+
yqyhoc1h

yqyhoc1h1#

下面的正则表达式捕获以“high”或“tall”开头的文本或单词,忽略大小写;但我强烈推荐使用SparkNLP进行“语义”文本处理,而不是使用正则表达式。

DF.filter(F.col("text").rlike("(?i)(^high|^tall|\shigh|\stall)"))

相关问题