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。