【发布时间】:2020-07-21 20:08:07
【问题描述】:
我是 Spark 的新手,对广播连接有疑问。我们使用 Spark 2.4.0 并使用 Spark Temporary Views 进行数据转换 -
create temporary view product as
select /*+ BROADCAST(b) */
a.custid, b.prodid
from cust a
join prod b
on a.prodid = b.prodid
我知道broadcast 有一个参数加入spark.sql.autoBroadcastJoinThreshold,其值为10,即10MB。但是,我还在某处读到广播表的最大大小可能是8GB。这两个值有什么意义?
对于广播表/视图,大小是否总是必须在MB 中,或者是否也可以广播(带有提示)5GB 的表/视图(例如)?在这种情况下,我是否必须通过将参数spark.sql.autoBroadcastJoinThreshold 设置为更高的值(=5120 即5GB)来操纵参数的值?或者,它是否允许我广播表格/视图,因为它低于最大限制(即8GB)?
如果我想广播一个表(以 GB 为单位),从查询性能的角度是否建议这样做?
感谢任何帮助。
谢谢
【问题讨论】:
标签: apache-spark-sql