在SQL中,我们可以做select * from table where col1 not in ('A','B');
我想知道是否有相当的pyspark。我能够为isin
子句查找SQL的IN
函数,但NOT IN
没有。
答案 0 :(得分:8)
我遇到了同样的问题并找到了解决方案。如果你想否定任何条件(在pySpark中表示为Column
类),则有否定运算符~
,例如:
df.where(~df.flag.isin(1, 2, 3)) # records with flag NOT IN (1, 2, 3)
答案 1 :(得分:0)
或者,您可以执行以下操作:
df = df.filter(df.sbg_digitalId.isin(1, 2, 3) == False)
答案 2 :(得分:0)
也可以像这样从 F.col() 调用 isin() 方法:
import pyspark.sql.functions as F
df.filter(~F.col("col1").isin('A','B'))
允许访问 IDE 中的“isin”文档(当然,如果您使用的是 PySpark-Stubs)。