【发布时间】:2017-01-30 15:48:20
【问题描述】:
为了提高性能(例如连接),建议首先计算表静态。
在 Hive 中我可以做到::
analyze table <table name> compute statistics;
在黑斑羚中:
compute stats <table name>;
我的 spark 应用程序(从 hive 表中读取)是否也受益于预先计算的统计信息?如果是,我需要运行哪一个?他们是否都将统计信息保存在 hive 元存储中?我在 Cloudera 5.5.4 上使用 spark 1.6.1
注意:
在 spark 1.6.1 (https://spark.apache.org/docs/1.6.1/sql-programming-guide.html) 的 Docs of the parameter spark.sql.autoBroadcastJoinThreshold 中我发现了一个提示:
请注意,目前仅支持 Hive Metastore 的统计信息 ANALYZE TABLE COMPUTE STATISTICS 命令所在的表 noscan 已运行。
【问题讨论】:
-
是否会分析 Hive 中的表并计算 impala 存储中相同元存储或不同位置的存储统计信息?因为我们只在 impala 中运行计算统计信息,但也使用 hive 来运行复杂的查询。
标签: apache-spark hive apache-spark-sql impala