HIVE - ВСТАВИТЬ в таблицу с помощью WITH CLAUSE - PullRequest
0 голосов
/ 27 мая 2020
with cte AS ( SELECT cust_id, COUNT(cust_id) OVER (PARTITION BY cust_id) cnt,collect(named_struct('id', concat(cast(split(acct_id,'_')[0] as string),"_",acct_type),'name', cast(acct_name as string))) as acct_list 
              FROM table_name1
              )
INSERT INTO table table_staging 
select cust_id,acct_list
FROM cte
WHERE cnt >=1 ;

правильно ли размещен запрос вставки? он говорит: -не удается распознать ввод рядом с 'g' 'select' 'cust_id' в заявлении, также он иногда показывает ошибку ниже при исправлении некоторых вещей SemanticException [Ошибка 10011]: Строка 1:89 Недопустимая функция 'collect'

1 Ответ

0 голосов
/ 27 мая 2020

В целом синтаксис в порядке. Hive принимает CTE с операторами INSERT, предшествующими INSERT, как с SELECT.

Однако функции collect() нет. Предположительно вы собираетесь использовать collect_set() или collect_list().

...