我想使用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
答案 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|
+--------------+------+