繁体   English   中英

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

[英]How to write sql nested queries with “not in” in pyspark dataframe?

我有一个 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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM