我对pyspark还比较陌生,我正在尝试用pyspark做一些文本预处理。我有一个专栏 Name
以及 ZipCode
属于sparkDataframe new_df
. “name”列包含如下值 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和其他网站上试过其他东西。似乎什么都没用。
1条答案
按热度按时间vlju58qv1#
使用
[,|:]
匹配,
或者:
并替换为空格' '
在“名称”列和“zipcode”中搜索空格' '
并替换为空字符串''
.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 |
+-----------------------+-------+