【问题标题】:How to filter column on values in list in pyspark?如何过滤pyspark列表中值的列?
【发布时间】:2018-03-24 06:10:37
【问题描述】:

我有一个数据框 rawdata,我必须在 X 列上应用过滤条件,其值为 CB、CI 和 CR。所以我使用了下面的代码:

df = dfRawData.filter(col("X").between("CB","CI","CR"))

但我收到以下错误:

between() 正好有 3 个参数(给定 4 个)

请告诉我如何解决此问题。

【问题讨论】:

标签: apache-spark pyspark apache-spark-sql spark-dataframe pyspark-sql


【解决方案1】:

函数between用于检查值是否在两个值之间,输入是一个下限和一个上限。它不能用于检查列值是否在列表中。为此,请使用isin

import pyspark.sql.functions as f
df = dfRawData.where(f.col("X").isin(["CB", "CI", "CR"]))

【讨论】:

  • 扩展@Shaido 的回答。如果您想否定该声明,您可以使用~ 符号,如下所示:df = dfRawData.where(~f.col("X").isin(["CB", "CI", "CR"]))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 2022-11-02
  • 2020-09-22
  • 1970-01-01
相关资源
最近更新 更多