Как пройти все перегородки в улье? - PullRequest
1 голос
/ 13 марта 2019

Я хочу обновить значение столбца во всех разделах. Прежде чем я нашел insert overwrite можно использовать для обновления данных. Мое текущее заявление

insert OVERWRITE table s_job PARTITION(pt = '20190101') select case job_name when 'Job' then 'system' end from s_job;

Однако он должен указывать определенный раздел. Я хочу обновить значение во всех разделах, я не знаю, как это сделать. Есть ли способ использовать Hive SQL для прохождения всех разделов в Hive? Большое вам спасибо.

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Использовать динамическое разбиение:

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;

insert OVERWRITE table s_job PARTITION(pt) 
select --Add all columns in their original order
       col1,
       col2,
       ...
       coln,
       case job_name when 'Job' then 'system' end as job_name,
       pt --partition column should be the last one
  from s_job;
0 голосов
/ 13 марта 2019

Вы можете использовать динамическое разбиение для задач такого типа

...