替换Pyspark中的多个元素

时间:2018-08-20 20:39:24

标签: regex pyspark

我想使用regexp_replace(例如“ www”)替换Pyspark中字符串的一部分。和“ .com”。是否可以传递要替换的元素列表?

my_list = ['www.google.com', 'google.com','www.goole']
from pyspark.sql import Row
from pyspark.sql.functions import regexp_replace
df = sc.parallelize(my_list).map(lambda x: Row(url = x)).toDF()
df.withColumn('site', regexp_replace('url', 'www.', '')).show()

我要替换两个www。和上面示例中的.com

1 个答案:

答案 0 :(得分:1)

使用管道|(OR)将两个模式组合成一个正则表达式模式www\.|\.com,它将匹配www..com,请注意您需要进行转义.以在正则表达式中按字面上匹配node-phpfpm

df.withColumn('site', regexp_replace('url', 'www\.|\.com', '')).show()
+--------------+------+
|           url|  site|
+--------------+------+
|www.google.com|google|
|    google.com|google|
|     www.goole| goole|
+--------------+------+