почему в улье не отображается количество пустых разделов, когда я использую group by?

#mapreduce #group-by #hive #hdfs

#mapreduce #group-by #улей #hdfs

Вопрос:

это просто любопытство: почему в улье не отображается количество пустых разделов, когда я использую group by?

 select count(*), partition_date 
from table 
group by partition_date;
  

результат:

 count----------------partition_date
746 ----------------20160901
1155----------------20160906
589 ----------------20160907
639 ----------------20160908
763 ----------------20160909
1502----------------20160912
1188----------------20160913
601 ----------------20160914
675 ----------------20160915
766 ----------------20160916
  

Теперь я не смог увидеть 3 раздела: 20160905, 20160904, 20160903.

Если я подсчитываю эти конкретные разделы, это дает мне count = 0.

 select count(*) from table where partition_date=20160905;
select count(*) from table where partition_date=20160904;
select count(*) from table where partition_date=20160903;
  

Но таким образом я сделал это без использования group by, и именно поэтому это дает мне результат.

Если я сделаю это снова, используя group by, я все равно получу пустой результат

 select count(*), partition_date from table where partition_date=20160905 group by partition_date;
  

Я пробовал другими способами, но я все еще не могу получить количество пустых разделов, используя group by…

 select count(*), partition_date from table group by partition_date having count(*)>=0;
select count(*), partition_date from table group by partition_date having count(*)=0;
select count(*), partition_date from table where partition_date in (20160905, 20160904, 20160903) group by partition_date;
  

Это единственное решение, которое я нашел, есть другой способ?

 select AA.partition_date,nvl(BB.CN,0) as CC 
from (select distinct partition_date as partition_date from table) AA 
left join 
    (select partition_date, count(*) as CN from table group by partition_date) BB 
on AA.partition_date = BB.partition_date;
  

Итак, мои последние вопросы:

  • связано ли это с заданиями MapReduce?
  • Как эти задания MapReduce работают для получения результатов этих запросов?
  • Знаете ли вы хитрый способ подсчета пустых разделов?