如何从 pyspark 数据框列中的列表中删除特定字符串
Posted
技术标签:
【中文标题】如何从 pyspark 数据框列中的列表中删除特定字符串【英文标题】:How to remove specific strings from a list in pyspark dataframe column 【发布时间】:2021-12-29 10:56:02 【问题描述】:我有以下 python 列表。
lst=['name','age','country
']
Spark 数据框如下。
column_a
name Xxxx, age 23, country aaaa
name yyyy, age 25, country bbbb
我必须将列表与 spark 数据框字符串列进行比较,并从列中删除列表中的值。
预期输出是:
column_a
Xxxx, 23, aaaa
yyyy, 25, bbbb
【问题讨论】:
【参考方案1】:您可以将regexp_replace
与'|'.join()
一起使用。第一个通常用于替换子字符串匹配。后者将使用|
加入列表的不同元素。两者的组合将删除列表中存在的列的任何部分。
import pyspark.sql.functions as F
df = df.withColumn('column_a', F.regexp_replace('column_a', '|'.join(lst), ''))
【讨论】:
【参考方案2】:万一你不想导入任何额外的模块,你也可以使用这样的东西:
df['column_a'] = df['column_a'].apply(lambda x: ''.join([i for i in x.split() if i not in lst]))
【讨论】:
谢谢。我也会检查这个选项 这不是pandas
吗?
哦,我想我没有仔细阅读,我假设OP有一个pandas df,所以pandas操作不会是额外的。你是对的以上是关于如何从 pyspark 数据框列中的列表中删除特定字符串的主要内容,如果未能解决你的问题,请参考以下文章