如何在PySpark RDD中替换/删除正则表达式?

hgqdbh6s  于 2023-05-21  发布在  Spark
关注(0)|答案(3)|浏览(203)

我的句子是说,“我想删除这个字符串如此糟糕。”

text = sc.textFile(...)

我想过滤掉(即删除)单词“string”,我注意到在python中,有一个“re”包。我试过

RDD.map(lambda x: x.replaceAll("<regular expression>", ""))

过滤掉“字符串”,但似乎在PySpark中没有这样的函数,因为它给了我一个错误。如何导入“re”包?或者在PySpark中有没有其他函数可以用来根据正则表达式删除/过滤掉某些字符串?

9vw9lbht

9vw9lbht1#

你可以简单地导入re包,如下所示。

import re

text = sc.textFile(...)

out = re.sub("string", '', text)
print out
pobjuy32

pobjuy322#

我不确定Spark中的文本的具体配置,但一般的方法(对于任何类型的var)都是使用.map()方法。
例如:

RDD.map(lambda s: s.replace("string",""))
uklbhaso

uklbhaso3#

要对文本文件的内容使用re.sub,请对文件中的每一行使用lambda函数:
rdd_sub = rdd.map(lambda line: re.sub("<regexpattern>", "<newvalue>", line))

相关问题