Spark 2.2引入了基于成本的优化(CBO,https://databricks.com/blog/2017/08/31/cost-based-optimizer-in-apache-spark-2-2.html ),它利用表统计(按计算ANALYZE TABLE COMPUTE STATISTICS....)
我的问题是:预先计算的统计数据在Spark 2.2(在我的情况下是2.1)操作(外部蜂巢)表之前是否也有用?统计数据会影响优化器吗?如果是,我还可以在Impala而不是Hive中计算统计数据吗?
更新:
到目前为止我发现的唯一提示是https://issues.apache.org/jira/browse/SPARK-15365
显然,统计数据用于决定是否进行广播加入
显然,统计数据用于决定广播加入是否完成,但不是
正如您在 UPDATE 中提到的,没有打开基于成本的优化,表统计信息(使用计算ANALYZE TABLE COMPUTE STATISTICS)仅用于将选择或物理运算符的JoinSelection执行计划策略。BroadcastHashJoinExecBroadcastNestedLoopJoinExec
JoinSelection默认情况下使用spark.sql.autoBroadcastJoinThreshold10M 的配置属性。
| 归档时间: |
|
| 查看次数: |
468 次 |
| 最近记录: |