如何过滤pyspark中列表中值的列?

问题描述 投票:4回答:1

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

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

但是我收到以下错误:

在()之间取3个参数(4个给定)

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

apache-spark pyspark apache-spark-sql spark-dataframe pyspark-sql
1个回答
13
投票

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

df = dfRawData.where(col("X").isin({"CB", "CI", "CR"}))
© www.soinside.com 2019 - 2024. All rights reserved.