Вставить текущую метку времени в HIVE как часть многострочной вставки - PullRequest
0 голосов
/ 23 января 2020

Я сейчас пытаюсь Многострочная вставка в таблицу в улье.

Я хочу, чтобы отметка времени была добавлена ​​с помощью функции отметки времени в Runtime . Я, однако, получаю сообщение об ошибке (см. Ниже)

Pls Примечание: в моей многострочной вставке много строк - я вставил здесь только 2 в качестве примера.

Вставить оператор

    INSERT INTO kpi01_reference.kp_source_table(event_ref, posting_group, posting_description, posting_account_number, posting_date)
VALUES
    ('P1A', 'AP', 'APM', '31',current_timestamp()),
    ('P1A', 'PA', 'AMP', '3150',current_timestamp())
;

ОШИБКА Ошибка при компиляции оператора: СБОЙ: SemanticException [Ошибка 10293]: невозможно создать временный файл для значений вставки. Выражение типа TOK_FUNCTION не поддерживается во вставке / значениях

Это моя таблица Определение

CREATE TABLE kpi01_reference.kp_source_table(
event_ref string, 
posting_group string, 
posting_description string, 
posting_account_number string, 
posting_date timestamp)

1 Ответ

0 голосов
/ 27 января 2020

К сожалению, функция current_timestamp () является TOK_FUNCTION , как указано в сообщении об ошибке, такие функции не допускаются в операторах вставки с использованием ключевого слова VALUE .

Однако путь есть. Вам нужно будет использовать фиктивную таблицу и выбрать из нее необходимые значения.

Попробуйте ниже, и это сработает, соответственно измените вставки.

INSERT INTO kpi01_reference.kp_source_table(event_ref, posting_group, posting_description, posting_account_number, posting_date)
select 'P1A', 'AP', 'APM', '31',current_timestamp() from (select 1 ) tmp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...