使用left_anti-spark/pyspark创建一个数据帧



我有以下DF

ID NAME VAL
-----------
1  John 5
2  Anna 6
3  Josh 12
4  Paul 10

我有这个DF

ID
--
2
3

我正在使用pyspark进行left_anti连接,代码如下

test= df.join(
df_ids,
on=['ID'],
how='left_anti'
)

我的预期输出是:

ID NAME VAL
1 John 5
4 Paul 10

尽管如此,当我运行上面的代码时,我得到了一个空的数据帧作为输出。我做错了什么?

您可以通过以下操作来完成此操作。

df = (df.join(df_ids, on=df["ID"]==df_ids["ID"], how='left')
.where(df_ids["ID"].isNull())
.select(df["*"]))

最新更新