【问题标题】:How to remove specific strings from a list in pyspark dataframe column如何从 pyspark 数据框列中的列表中删除特定字符串
【发布时间】: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

【问题讨论】:

    标签: python pyspark


    【解决方案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操作不会是额外的。你是对的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2019-11-25
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多