Python Pyspark中是否有类似于re.compile的函数可以帮助从字符串中删除模式
我用python编写了这个函数,但是考虑到数据的大小,我不得不依赖Pyspark。有没有办法在Pyspark中执行相同的功能。供参考,在当前函数中:Python Pyspark中是否有类似于re.compile的函数可以帮助从字符串中删除模式,python,pyspark,re,Python,Pyspark,Re,我用python编写了这个函数,但是考虑到数据的大小,我不得不依赖Pyspark。有没有办法在Pyspark中执行相同的功能。供参考,在当前函数中: df=原始数据帧,col=需要运行操作的列,chars=需要删除的字符列表(chars=['L','JS','P']) 我的数据格式如下: |Field_1| |L41_Milie_P22 |, |L45_Rahul_P15 |, |L44_JS_Diesel_P2 |, |L4_JS_
df
=原始数据帧,col
=需要运行操作的列,chars
=需要删除的字符列表(chars=['L','JS','P']
)
我的数据格式如下:
|Field_1|
|L41_Milie_P22 |,
|L45_Rahul_P15 |,
|L44_JS_Diesel_P2 |,
|L4_JS_Viqram_P7 |
在最终的输出中,我只想要:米莉、拉胡尔、迪塞尔、维克拉姆
def clean_process_name_py(df, col, chars = None):
data = df.copy()
pattern = re.compile(r'[^A-Za-z]?('+'|'.join(chars)+')(\d+)?')
if chars:
data[col] = data[col].str.replace(pattern, '', regex = True).str.strip("_")
return data
您可以使用:
df.withColumn(“cleaned”,F.regexp_替换(“Field_1)”,“_?(L | JS | P)(\d+),”)。show()
输出:
+----------------+---------+
|现场|1|清洁|
+----------------+---------+
|L41米~P22米~|
|L45_Rahul|u P15 | Rahul|
|L44_JS_柴油机| P2柴油机|
|L4_JS_Viqram_P7|Viqram|
+----------------+---------+