问题

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。
原文地址:https://www.cnblogs.com/muyue123/p/13209185.html