所以我有一个 PySpark Dataframe,我想用一个(长)有效列表来过滤它pairs两列。
假设我们的数据框的名称是df
和列col1
and col2
:
col1 col2
1 A
2 B
3 1
null 2
A null
2 null
1 null
B C
我的有效配对列表为:flist=[(1,A), (null,2), (1,null)]
当我尝试使用.isin()
函数(如下),它告诉我.isin()
不适用于元组。
df.filter((df["col1"],df["col2"]).isin(flist))
通过连接两个字符串或为每对写下一个布尔表达式,可以解决此问题,但我有一长串有效对(很难转换为布尔值),并且由于空值,连接也不可靠。使用Python(df['col1'],df['col2']) in flist
也不起作用。
有 Python/PySpark 方法可以做到这一点吗?