[英]How to remove a substring of characters from a PySpark Dataframe StringType() column, conditionally based on the length of strings in columns?
[英]How to remove specific strings from a list in pyspark dataframe column
我有以下 python 列表。
lst=['name','age','country
']
火花 dataframe 如下。
column_a
name Xxxx, age 23, country aaaa
name yyyy, age 25, country bbbb
我必须将列表与 spark dataframe 字符串列进行比较,并从列中删除列表中的值。
预期的 output 是:
column_a
Xxxx, 23, aaaa
yyyy, 25, bbbb
万一你不想导入任何额外的模块,你也可以使用这样的东西:
df['column_a'] = df['column_a'].apply(lambda x: ''.join([i for i in x.split() if i not in lst]))
您可以将regexp_replace
与'|'.join()
一起使用。 第一种是常用来代替substring火柴。 后者将使用|
加入列表的不同元素。 . 两者的组合将删除列表中存在的列的任何部分。
import pyspark.sql.functions as F
df = df.withColumn('column_a', F.regexp_replace('column_a', '|'.join(lst), ''))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.