Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyspark中是否有类似于re.compile的函数可以帮助从字符串中删除模式_Python_Pyspark_Re - Fatal编程技术网

Python Pyspark中是否有类似于re.compile的函数可以帮助从字符串中删除模式

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_

我用python编写了这个函数,但是考虑到数据的大小,我不得不依赖Pyspark。有没有办法在Pyspark中执行相同的功能。供参考,在当前函数中:
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|
+----------------+---------+