У меня есть таблица, которая разбита по дням. Я попытался вставить данные, установив
установить Hivevar: DS = 2018-12-01;
затем с использованием ** INSERT OVERWRITE таблицы XTABLE раздел (день = '$ {hivevar: ds}') **
который отлично работает
но когда мне нравится, как показано ниже
set hivevar: pd = date_add ('$ {hivevar: ds}', - 1);
затем ** INSERT OVERWRITE таблица XTABLE раздел (день = '$ {hivevar: pd}') **
это ошибка. я думаю, что проблема из-за лишних кавычек, но не в состоянии найти, как решить.
ошибка:
не может распознать ввод около '' date_add ('' '2018' '-' в константе
MYCODE:
set hivevar:ds=2018-12-01;
set hivevar:pd=date_add('${hivevar:ds}',-1);
set hive.exec.dynamic.partition.mode=nonstrict;
CREATE TABLE IF NOT EXISTS XTABLE (emp_id BIGINT, start_time STRING, end_time STRING)
PARTITIONED BY(day STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
--THIS IS WORKING FINE
INSERT OVERWRITE table XTABLE partition(day='${hivevar:ds}')
select distinct d.emp_id, d.start_time, d.end_time from
(
select emp_id, start_time, end_time from XTABLE where day='${hivevar:ds}'
) d;
--THIS IS THROWING AN ERROR cannot recognize input near ''date_add('' '2018' '-' in constant
--SEEMS PROBLEM IS WHILE SETTING THE VARIABLE
INSERT OVERWRITE table XTABLE partition(day='${hivevar:pd}')
select distinct d.emp_id, d.start_time, d.end_time from
(
select emp_id, start_time, end_time from XTABLE where day='${hivevar:pd}'
) d;
в случае успеха выдается сообщение, как показано ниже:
Загрузка данных в раздел таблицы xtable (день = 2018-12-01)