我对Apache Spark中表格的统计信息收集有以下疑问
答案 0 :(得分:2)
它存储在Hive Metastore中。特别是作为表属性。诸如ORC和Parquet之类的格式还具有读者可以使用的每个文件和每个块的统计信息。但是优化程序不会使用它。
Spark和Hive使用不同的参数名称来存储统计信息。因此,不幸的是,他们无法使用其他引擎收集的统计信息。
具体来说,在Spark中收集统计信息后,表属性具有:
TBLPROPERTIES (
'numFiles'='1',
'numRows'='-1',
'rawDataSize'='-1',
'spark.sql.statistics.numRows'='111111',
'spark.sql.statistics.totalSize'='11111',
'totalSize'='111111',
在Hive中收集统计信息之后,表属性具有:
TBLPROPERTIES (
'numFiles'='1',
'numRows'='1111111',
'rawDataSize'='1111111',