如何在 pyspark 数据帧中使用 "not in" 编写 sql 嵌套查询?



我有一个sql查询,我想转换为pyspark:

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"))

where子句中NOT INNOT EXISTS的关联子查询可以使用左反连接:

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

根据您的评论,如果您在子查询中有条件,那么您可以将其放在连接条件中。例如:

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")

相关内容

  • 没有找到相关文章

最新更新