Apache spark sparksql中非等连接的物理规划与优化

Apache spark sparksql中非等连接的物理规划与优化,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我正在使用Spark SQL 2.4.0。我有以下几张表: 客户表: id | name | age | join_dt ------------------------- 12 | John | 25 | 2019-01-05 34 | Pete | 29 | 2019-06-25 56 | Mike | 35 | 2020-01-31 78 | Alan | 30 | 2020-02-25 参考表: eff_dt ------ 2020-01-31 要求从CUST中选择其join\u d

我正在使用Spark SQL 2.4.0。我有以下几张表:

客户表:

id | name | age | join_dt
-------------------------
12 | John | 25 | 2019-01-05
34 | Pete | 29 | 2019-06-25
56 | Mike | 35 | 2020-01-31
78 | Alan | 30 | 2020-02-25
参考表:

eff_dt
------
2020-01-31

要求从
CUST
中选择其
join\u dt
的所有记录
ref
表中有多少记录?只有一条记录您可以将
ref
表行收集到一个变量中?然后使用
filter
可以避免完全加入。@Izhar Ahmed感谢您的回复。因为我们使用Spark SQL API查询,所以我没有将该日期放入变量的选项。顺便说一句,你能解释一下我的问题吗?
select 
c.id, 
c.name, 
c.age, 
c.join_dt
from cust c
inner join ref r
on c.join_dt <= r.eff_dt;
select c.id, c.name, c.age, c.join_dt
from cust c
inner join ref r
on c.join_dt = r.eff_dt --equi join
union all
select c.id, c.name, c.age, c.join_dt
from cust c
inner join ref r
on c.join_dt < r.eff_dt; --theta join