如何在pyspark dataframe中编写带有“notin”的sql嵌套查询?

yzckvree  于 2021-07-12  发布在  Spark
关注(0)|答案(1)|浏览(388)

我有一个要转换为pyspark的sql查询:

select * from Table_output where cct_id not in (select * from df_hr_excl)

伪代码:

Table_output=Table_output.select(col("cct_id")).exceptAll(df_hr_excl.select("cct_id")) or 
col("cct_id").isin(df_hr_excl.select("cct_id"))
dw1jzc5e

dw1jzc5e1#

where子句中与 NOT IN 或者 NOT EXISTS 可以使用左反联接写入:

Table_output = Table_output.join(df_hr_excl, ["cct_id"], "left_anti")

根据您的注解,如果您的子查询中有一个条件,那么您可以将其放入join条件中。例如。:

Table_output = Table_output.alias("a").join(df_hr_excl.alias("b"), (F.col("a.x") > F.col("b.y")) & (F.col("a.id") == F.col("b.id")), "left_anti")

相关问题