Вы почти рядом.
df = spark.createDataFrame([(1,11,'a1','b1','c1'),(2,12,'a2','b2','c2'),(3,13,'a3','b3','c3'),(4,14,'a4','b4','c4')],['one_id','another_id','val1','val2','val3'])
list1 = ['1','2']
list2 = ['11','12']
Вы можете использовать NOT isin()
через этот синтаксис (isin() == False
или ~isin()
)
from pyspark.sql.functions import col
df.where((col('one_id').isin(list1) == False) & (col('another_id').isin(list2) == False)).show()
#+------+----------+----+----+----+
#|one_id|another_id|val1|val2|val3|
#+------+----------+----+----+----+
#| 3| 13| a3| b3| c3|
#| 4| 14| a4| b4| c4|
#+------+----------+----+----+----+