如何在spark sql中进行广播。存在主表与10个查找表连接的查询。我想广播查找表以减少混乱。在sql语句中怎么做。我无法播放df并创建表格。我只需要在查询中添加广播。我可以很容易地使用spark scala,但我需要在sql中做。
例如 -
select * from A a
join B b
on a.id = b.id
join C c
on c.id = b.id
join D d
on d.id = c.id
.....
....
...
..
答案 0 :(得分:2)
Spark 1.x不支持broadcast hints(提示语法有效,但没有效果)。
如果您想使用广播,请执行以下操作之一:
DataFrame
API。spark.sql.autoBroadcastJoinThreshold
调整为低于表格的最大预期尺寸。答案 1 :(得分:2)
您可以将广播hint
用于查找表:
select /*+ BROADCAST(b), BROADCAST(c), BROADCAST(d) */
*
from A a
join B b
on a.id = b.id
join C c
on c.id = b.id
join D d
on d.id = c.id
这将广播查找表。但是,请确保查找表的大小小于8GB
。