如何替换Pyspark中的特殊角色?

问题描述 投票:1回答:1

我对Pyspark还是陌生的,我正在尝试使用Pyspark进行一些文本预处理。我有一个列NameZipCode,它们属于一个火花数据帧new_df。 “名称”列包含类似WILLY:S MALMÖ, EMPORIA的值,而ZipCode包含类似也是字符串的123 45的值。我想做的是删除:,等字符,并删除ZipCode之间的空格。我尝试了以下操作,但似乎无济于事:

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

我也在SO和其他网站上尝试了其他方法。似乎没有任何效果。

apache-spark pyspark nlp nltk sql-function
1个回答
0
投票

使用[,|:]匹配,:并用名称列中的空格' '替换,对于邮政编码搜索空格' '并用空白替换字符串''

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  |
#+-----------------------+-------+
© www.soinside.com 2019 - 2024. All rights reserved.