Mauvais résultat pour le count(*) dans le tableau de la ruche
J'ai créé une table dans la RUCHE
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(*) ne me donne pas de résultats corrects pour cette table
hive> select count(*) from daily_firstseen_analysis;
OK
75
Time taken: 0.922 seconds, Fetched: 1 row(s)
Alors que le nombre de lignes dans cette table est 959 lignes
hive> select * from daily_firstseen_analysis;
....
Time taken: 0.966 seconds, Fetched: 959 row(s)
il donne des données avec 959 lignes
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
Je suis l'aide de la ruche avec la version de la Ruche 0.13.0.2.1.2.0-402
NOTE:
J'ai trouvé cette question dans le count(*) si Nous sommes d'insérer dans une table de plus d'une heure. Les Tables créées avec seul insérer n'ont pas ce problème
Ce n'est pas possible. Pouvez-vous assurez-vous que lorsque vous insérez le chargement, enregistrement dans la table de la Ruche, à ce moment, vous n'êtes pas en cours d'exécution toute autre requête sur la table.
J'ai couru toutes les requêtes de type insert de manière séquentielle.Je peux voir tous les enregistrements avec l'instruction select*. Même analyser le tableau de me donner tous beaux. Seul problème est avec le comte() sur cette table. count) sur d'autres tables fonctionne très bien dans mon environnement. Laissez-moi savoir si vous avez besoin de plus d'informations sur ce problème.
pas possible". Vous allez donc vous personnellement témoigner que la ruche a zéro bugs? BTW j'ai été l'aide de la ruche pour deux ans en grappes à plus de 500 nœuds. Je dirais que la ruche a un bug ou deux..
Si vous exécutez la commande ANALYSER après avoir traité votre multi inserts et exécuter le comte de nouveau le résultat devrait être ok?
ANALYSER est un bon truc, mais j'ai l'impression qu'il ne fonctionne pas sur les tables EXTERNES. Assez mauvais bug à mon humble avis
J'ai couru toutes les requêtes de type insert de manière séquentielle.Je peux voir tous les enregistrements avec l'instruction select*. Même analyser le tableau de me donner tous beaux. Seul problème est avec le comte() sur cette table. count) sur d'autres tables fonctionne très bien dans mon environnement. Laissez-moi savoir si vous avez besoin de plus d'informations sur ce problème.
pas possible". Vous allez donc vous personnellement témoigner que la ruche a zéro bugs? BTW j'ai été l'aide de la ruche pour deux ans en grappes à plus de 500 nœuds. Je dirais que la ruche a un bug ou deux..
Si vous exécutez la commande ANALYSER après avoir traité votre multi inserts et exécuter le comte de nouveau le résultat devrait être ok?
ANALYSER est un bon truc, mais j'ai l'impression qu'il ne fonctionne pas sur les tables EXTERNES. Assez mauvais bug à mon humble avis
OriginalL'auteur minhas23 | 2014-06-06
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème, et à l'aide d'ANALYSER fixe. L'exécution de ces commandes dans l'ordre devrait vous donner le nombre correct:
vous devez utiliser la commande analyser avant de les compter. Vous avez la moitié de la réponse dans votre question.
OriginalL'auteur Nadine
si vous avez une table externe, supprimer tous les fichiers HDFS, et l'insérer dans la table à nouveau, puis select count(*) sera incorrect.
OriginalL'auteur Karl Dailey