2016-10-07 21 views
5

daha yüksek bir değer döndürür. Bir alan master_id ile bir tablo (mytable adlandırılmış) olduğunu varsayalım.HIVE select count (*) olmayan boş Şu anda Hive ile bazı veri keşif yapıyorum ve şu davranışı izah edemez select count (*)

ben sıranın sayısını zaman olmayan bir boş master_id aldığı satırın sayısını saymak isterseniz ben

select count(*) as c from mytable 
c 
1129563 

olsun, ben

select count(*) as c from mytable where master_id is not null 
c 
1134041 

Ayrıca, yüksek bir sayı olsun master_id asla boş görünmez.

select count(*) as c from mytable where master_id is null 
c 
0 

Nerede bir ekleme ifadesinin sonuç olarak satır sayısını artabileceğini açıklayamam. Bu davranışı açıklayan herhangi bir ipucu var mı?

Teşekkür Büyük olasılıkla çünkü bu parametrenin istatistikleri kullanarak nerede olmadan sorgu ayarlanır

+0

Bu ne tablonun şema benziyor? – Kusalananda

+0

Tablo şemanızı sağlayın – Beginner

cevap

5

:

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

deneyin yanlış ayarlayın ve tekrar çalıştırmak için.

Alternatif masaya istatistiklerini hesaplayabilir. Ayrıca otomatik ÜZERİNE INSERT sırasında istatistik toplamak mümkündür ANALYZE TABLE SYNTAX

bakınız:

set hive.stats.autogather=true; 
+0

Çok teşekkürler. Gerçekten de hive.compute.query.using.stats öğesini false olarak ayarlarsam, her ikisi de sayılır. –

+0

Bu analiz etmek için yeni bir şey .. İyi olan. –