未应用 Hive PartitionFilter

Hive PartitionFilter are not Applied

我在配置单元中遇到了这个问题。 当我查询按日期列分区的 table 时, SELECT count(*) from table_name where date='2018-06-01' 查询读取整个 table 数据并保留 运行 小时, 使用 EXPLAIN 我发现 HIVE 没有在查询上应用 PartitionFilter 我仔细检查了 table 是否按 desc table_name.

在日期列上进行了分区

执行引擎为 Spark,数据以 Parquet 格式存储在 Azure Data lake

但是我在应用了 PartitionFilter 的数据库中还有另一个 table,它按预期执行。

配置单元元数据可能存在问题还是其他原因

找到这个问题的原因, Hive 没有在某些 table 上应用分区过滤器,因为那些 table 已被缓存。 因此,当我重新启动 thrift 服务器时,缓存被删除并应用了分区过滤器