我在hive中有一个外部表并指向HDFS位置。我错误地运行了两次将数据加载到HDFS中。
即使从HDFS hive中删除了重复文件,也会显示两次数据计数(即包括删除的重复数据文件计数)。
从tbl_name中选择count(*) - 返回双倍时间
但是,
从tbl_name中选择count(col_name) - 返回实际计数。
在
之后从Impala尝试时的相同表格INVALIDATE METADATA
我只能看到HDFS中可用的数据计数(不重复)。
即使从物理位置(hdfs)删除后,hive如何将count计为double,是否从统计信息中读取?
答案 0 :(得分:1)
Hive正在使用统计信息来计算cont(*)
。您手动删除了文件(不使用Hive),这就是统计信息错误的原因。
解决方案是:
在这种情况下关闭统计信息使用情况:
set hive.compute.query.using.stats = false;
分析你在评论中提到的表格:
分析表tbl_name分区(a,b,c)计算统计信息;