Возникла проблема в запросе куста при генерации пропущенных дат

Я добавил * .jfm extenstion в файле gitignore

Да, но вам также нужно сделать:

git rm --cached *.jfm

Таким образом, если эти файлы уже были отслежены, их больше не будет, и будет применен .gitignore.

Я исправил эту проблему, вручную удалив файл testdb/testdb.jfm с сервера git

Это тоже сработает: pull будет сообщать об этом дележе локально.

1
задан leftjoin 19 January 2019 в 13:37
поделиться

1 ответ

Вы можете сгенерировать даты для требуемого диапазона в подзапросе (см. Подзапрос date_range в приведенном ниже примере) и left join в своей таблице. Если в некоторые даты в вашей таблице нет записей, значение будет нулевым, даты будут возвращены из подзапроса date_range без пробелов. Задайте параметры start_date и end_date для требуемого диапазона даты:

set hivevar:start_date=2016-04-23; --replace with your start_date
set hivevar:end_date=current_date; --replace with your end_date

set hive.exec.parallel=true;
set hive.auto.convert.join=true; --this enables map-join
set hive.mapjoin.smalltable.filesize=25000000; --size of table to fit in memory

with date_range as 
(--this query generates date range, check it's output
select date_add ('${hivevar:start_date}',s.i) as dt 
  from ( select posexplode(split(space(datediff(${hivevar:end_date},'${hivevar:start_date}')),' ')) as (i,x) ) s
) 

select d.dt as date,
       t.your_col --some value from your table on date
  from date_range d 
       left join table1 t on d.dt=t.date 
order by d.dt --order by dates if necessary
0
ответ дан leftjoin 19 January 2019 в 13:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: