如何替换 Pyspark 中的特殊字符?

How to replace special charachters in Pyspark?

我是 Pyspark 的新手,我正在尝试使用 Pyspark 进行一些文本预处理。 我有一列 NameZipCode 属于 spark 数据框 new_df。 'Name' 列包含 WILLY:S MALMÖ, EMPORIA 等值,ZipCode 列包含 123 45 等值,这也是一个字符串。我想做的是删除 :, 等字符,并删除 ZipCode 之间的 space。 我尝试了以下但似乎没有任何效果:

new_df = new_df.withColumn('Name', sfn.regexp_replace('Name', r',' , ' '))
new_df = new_df.withColumn('ZipCode', sfn.regexp_replace('ZipCode', r' ' , ''))

我也尝试了来自 SO 和其他网站的其他东西。似乎没有任何效果。

[,|:]匹配,:,替换成space ' ' in Name 列和 zipcode 搜索 space ' ' 并替换为空字符串 ''.

Example:

new_df.show(10,False)
#+-----------------------+-------+
#|Name                   |ZipCode|
#+-----------------------+-------+
#|WILLY:S MALMÖ, EMPORIA|123 45 |
#+-----------------------+-------+
new_df.withColumn('Name', regexp_replace('Name', r'[,|:]' , ' ')).\
withColumn('ZipCode', regexp_replace('ZipCode', r' ' , '')).\
show(10,False)
#or
new_df.withColumn('Name', regexp_replace('Name', '[,|:]' , ' ')).\
withColumn('ZipCode', regexp_replace('ZipCode', '\s+' , '')).\
show(10,False)
#+-----------------------+-------+
#|Name                   |ZipCode|
#+-----------------------+-------+
#|WILLY S MALMÖ  EMPORIA|12345  |
#+-----------------------+-------+