Spark SQL是否包含用于连接的表流优化?

Sim*_*Sim 5 apache-spark apache-spark-sql

Spark SQL是否包含用于连接的表流优化,如果是,它如何决定要流哪个表?

在进行连接时,Hive假设最后一个表是最大的表.作为连接优化,它将尝试缓冲较小的连接表并流式传输最后一个连接表.如果连接列表中的最后一个表不是最大/*+ STREAMTABLE(tbl) */的表,Hive会有一个提示,告诉它应该流式传输的表.从v1.4.1开始,Spark SQL不支持STREAMTABLE提示.

这个问题已经被问了正常RDD处理,星火SQL之外,在这里.答案不适用于开发人员无法控制显式缓存操作的Spark SQL.

Nie*_*and 3

我前段时间一直在寻找这个问题的答案,我能想到的就是设置一个spark.sql.autoBroadcastJoinThreshold参数,默认情况下为10 MB。然后它会尝试自动广播所有大小小于您设置的限制的表。对于此设置,连接顺序在此不起作用。

如果您有兴趣进一步提高连接性能,我强烈推荐此演示文稿