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

How to filter column on values in list in pyspark?

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

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

但我收到以下错误:

between() takes exactly 3 arguments (4 given)

请告诉我如何解决这个问题。

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

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