hive表中count(*)的结果错误

时间:2014-06-06 11:02:24

标签: hadoop hive hiveql

我在HIVE中创建了一个表

CREATE TABLE IF NOT EXISTS daily_firstseen_analysis (
    firstSeen         STRING,
    category          STRING,
    circle            STRING,
    specId            STRING,
    language          STRING,
    osType            STRING,
    count             INT)
    PARTITIONED BY  (day STRING)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t'
    STORED AS orc;

count(*)没有给我这个表的正确结果

hive> select count(*) from daily_firstseen_analysis;
OK
75
Time taken: 0.922 seconds, Fetched: 1 row(s)

虽然此表中的行数为959行

hive> select * from daily_firstseen_analysis;
....
Time taken: 0.966 seconds, Fetched: 959 row(s)

它为数据提供959行

hive> ANALYZE TABLE daily_firstseen_analysis PARTITION(day) COMPUTE STATISTICS noscan; 
    Partition logdata.daily_firstseen_analysis{day=20140521} stats: [numFiles=6, numRows=70, totalSize=4433, rawDataSize=37202]
    Partition logdata.daily_firstseen_analysis{day=20140525} stats: [numFiles=6, numRows=257, totalSize=4937, rawDataSize=136385]
    Partition logdata.daily_firstseen_analysis{day=20140523} stats: [numFiles=6, numRows=211, totalSize=5059, rawDataSize=112140]
    Partition logdata.daily_firstseen_analysis{day=20140524} stats: [numFiles=6, numRows=280, totalSize=5257, rawDataSize=148808]
    Partition logdata.daily_firstseen_analysis{day=20140522} stats: [numFiles=6, numRows=141, totalSize=4848, rawDataSize=74938]
    OK
    Time taken: 5.098 seconds

我正在使用版本为Hive 0.13.0.2.1.2.0-402的hive

注意: 如果我们在多次插入表中,我在count(*)中发现了这个问题。使用单个插入创建的表没有此问题

3 个答案:

答案 0 :(得分:8)

我遇到了同样的问题,并使用ANALYZE修复了它。按顺序运行这些命令应该给你正确的计数:

hive> ANALYZE TABLE daily_firstseen_analysis PARTITION(day) COMPUTE STATISTICS;
hive> SELECT COUNT(*) FROM daily_firstseen_analysis;

即。你必须在计数之前使用analyze命令。你的问题中有一半的答案。

答案 1 :(得分:1)

如果你有一个外部表,删除HDFS中的所有文件,然后再次插入表中,然后选择count(*)将是不正确的。

答案 2 :(得分:0)

我首先执行ANALYZE TABLE ...是可以的,但是当我再次尝试时出现错误,所以我尝试:

hive> REFRESH TABLE daily_firstseen_analysis;
hive> SELECT COUNT(*) FROM daily_firstseen_analysis;

这是解释

enter image description here