sparksql中带有exists子句的广播提示

m3eecexj  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(750)

是否允许申请 BROADCAST 暗示 EXISTS / NOT EXISTS sparksql查询中的子句(使用sqlapi)来提高查询性能?
我有一个大表,我需要与一个小表进行比较,从中我需要检查“外部”表中是否不存在某个条件。
因为(据我所知)spark最终使用 Joins 实施 EXISTS / NOT EXISTS 在查询中使用了子句的幕后,我想了解一下 BROADCAST 提示可用于查询中的小表 EXISTS 子句来提高查询性能。
例如,我可以执行以下操作:

select /*+ BROADCAST(p) */
a.id, a.name, a.desc
from cust a
where not exists (select 1 
                  from products p
                  where a.id = p.id
                  and p.flg <> 'E'
                 )
and a.age > 30

select 
a.id, a.name, a.desc
from cust a
where not exists (select /*+ BROADCAST(p) */ 
                  1 
                  from products p
                  where a.id = p.id
                  and p.flg <> 'E'
                 )
    and a.age > 30

有没有人能解释一下以上两种方法是否可行?如果没有,请有人告诉我,如果有任何解决办法是可以广播的 EXISTS / NOT EXISTS 条款。
注意:我使用sparksqlv2.4
感谢您的帮助。谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题