【问题标题】:How to replace/remove regular expression in PySpark RDD?如何替换/删除 PySpark RDD 中的正则表达式?
【发布时间】:2018-04-08 00:59:53
【问题描述】:

我的句子是, “我好想把这个字符串去掉。” 我将此文本文件传递为

text = sc.textFile(...)

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

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

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

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案1】:

    你可以简单的导入re包,如下图。

    import re
    
    text = sc.textFile(...)
    
    out = re.sub("string", '', text)
    print out
    

    【讨论】:

    • 看起来是一个可行的解决方案。也许您可以在答案中添加一些 cmets 以使其更加个性化和有用。
    【解决方案2】:

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

    例如:

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

    【讨论】:

    • .replace() 中的“字符串”可以是正则表达式的形式吗?
    • 根据to this threadreplace 做不到,但是使用re 可以做到。
    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 2016-04-03
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多