美文网首页
hive中有数据 select count(*)显示为0的问题

hive中有数据 select count(*)显示为0的问题

作者: Ziger丶 | 来源:发表于2021-03-26 14:56 被阅读0次

    一、问题情况

    检查表的时候
    sql语句:

    select * from table;
    

    显示为



    但是执行
    sql语句:

    select count(*)  from table;
    

    显示为



    二、解决方案

    2.1 方法一

    后面加上限制1条可以正常查询。

    select count(*) from table limit 1;
    
    2.2 方法二

    执行下语句后,正常查询可以正常显示。

    set hive.compute.query.using.stats=fasle;
    

    以上设置原理为

    hive.compute.query.using.stats=true
    
    Instructs Hive to use statistics when generating query plans
    

    三、造成原因

    这是hive中的一个优化参数导致的,对于一些使用频率可能很高的sql会进行查询优化,会将这个参数[hive.compute.query.using.stats]设置为true(默认是false),这样的话,Hive在执行某些查询时,例如select count(1),只利用元数据存储中保存的状态信息返回结果,从而提高了响应速度

    相关文章

      网友评论

          本文标题:hive中有数据 select count(*)显示为0的问题

          本文链接:https://www.haomeiwen.com/subject/qmbjhltx.html