【问题标题】:Pyspark how to remove punctuation marks and make lowercase letters in Rdd?Pyspark如何删除标点符号并在Rdd中制作小写字母?
【发布时间】:2018-11-09 00:51:25
【问题描述】:

我想删除标点符号并在 RDD 中制作小写字母? 下面是我的数据集

 l=sc.parallelize(["How are you","Hello\ then% you"\
,"I think he's fine+ COMING"])

我尝试了以下功能,但收到错误消息

punc='!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

def lower_clean_str(x):
    lowercased_str = x.lower()
    clean_str = lowercased_str.translate(punc) 
    return clean_str

one_RDD = l.flatMap(lambda x: lower_clean_str(x).split())
one_RDD.collect()

但这给了我一个错误。可能是什么问题?我怎样才能解决这个问题? 谢谢。

【问题讨论】:

    标签: pyspark lowercase punctuation


    【解决方案1】:

    您以错误的方式使用 python 翻译功能。 由于我不确定您使用的是 python 2.7 还是 python 3,因此我建议使用另一种方法。

    python 3 中的 translate 函数发生了一些变化。

    以下代码将与 python 版本无关。

    def lower_clean_str(x):
      punc='!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
      lowercased_str = x.lower()
      for ch in punc:
        lowercased_str = lowercased_str.replace(ch, '')
      return lowercased_str
    
    l=sc.parallelize(["How are you","Hello\ then% you","I think he's fine+ COMING"])
    one_RDD = l.map(lower_clean_str)
    one_RDD.collect()
    

    输出:

    ['你好吗','你好','我觉得他很好']

    【讨论】:

    • @melik 欢迎来到 stackoverflow。在这里,如果它对您有用,您可以接受答案,因此其他偶然发现此问题的人可以了解解决方案是否有效
    猜你喜欢
    • 2023-02-10
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    相关资源
    最近更新 更多