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中计算统计数据?
更新:
发布于 2018-01-19 05:34:30
显然,统计信息是用来决定广播加入是否完成的,而不是
正如您在UPDATE中提到的,在没有启用基于成本的优化的情况下,表统计信息(使用ANALYZE TABLE COMPUTE STATISTICS
计算)仅用于JoinSelection执行计划策略,该策略将选择BroadcastHashJoinExec
或BroadcastNestedLoopJoinExec
物理操作符。
JoinSelection
使用默认情况下为10M的spark.sql.autoBroadcastJoinThreshold
配置属性。
https://stackoverflow.com/questions/46950007
复制相似问题