问题

1:使用count(*)显示为0,但select操作时发现表有中数据。

因为执行count(1)或count(*)统计行数时,默认会从Hive的元数据库中查询 rowsNum 对应值作为结果返回(至于为什么不自动更新,尚不清楚)。
解决方案:
1——使用ANALYZE命令手动更新表统计信息:ANALYZE TABLE Table1 COMPUTE STATISTICS;
2——对于类似于“count(1)”的基础查询不使用元数据中的统计信息,而是执行MR Job,即设置参数hive.compute.query.using.stats值为false。

 

posted @ 2020-06-29 17:42  muyue123  阅读(102)  评论(0编辑  收藏  举报