繁体   English   中英

如果字符串在 PySpark 中包含某些 substring,则替换字符串

[英]Replace string if it contains certain substring in PySpark

如果该列包含某些 substring,则需要更新 PySpark dataframe

例如:

df 看起来像

id      address
1       spring-field_garden
2       spring-field_lane
3       new_berry place

如果地址列包含spring-field_只需将其替换为spring-field

预期结果:

id      address
1       spring-field
2       spring-field
3       new_berry place

试过:

df = df.withColumn('address',F.regexp_replace(F.col('address'), 'spring-field_*', 'spring-field'))

似乎不起作用。

您可以使用like with when表达式:

from pyspark.sql import functions as F

df = df.withColumn(
    'address',
    F.when(
        F.col('address').like('%spring-field_%'),
        F.lit('spring-field')
    ).otherwise(F.col('address'))
)

您可以使用以下正则表达式:

df.withColumn(
    'address',
    F.regexp_replace('address', r'.*spring-field.*', 'spring-field')
)

或者,您可以使用方法contains

df.withColumn(
    'address',
    F.when(
        F.col('address').contains("spring-field"), "spring-field"
    ).otherwise(F.col('address'))
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM