Hive - Как вставить в таблицу улья массив структур - PullRequest
0 голосов
/ 04 июня 2018

Итак, из здесь я узнал, как вставить значения в столбец массива:

INSERT INTO table 
SELECT ARRAY("line1", "line2", "line3") as myArray
FROM source1;

А из здесь как вставить значения в столбец структуры:

INSERT INTO table 
SELECT NAMED_STRUCT('houseno','123','streetname','GoldStreet', 'town','London', 'postcode','W1a9JF') AS address 
FROM source2;

Теперь я пытался таким же образом вставить значения в массив структур.Который имеет следующую схему:

additionalattribute:array<struct<attribute_value:string,key:string,value:string>

Я пытался экстраполировать так:

  INSERT INTO table 
  ARRAY(NAMED_STRUCT('attribute_value','null','key','null','value','null')) as additionalattribute
  FROM source2;

Но это не работает.Кто-нибудь знает, как подойти к этому вопросу?

1 Ответ

0 голосов
/ 04 июня 2018

вам не хватает оператора select после имени таблицы.Демо

create table temp4
(
additionalattribute array<struct<attribute_value:string,key:string,value:string>>
);

INSERT INTO temp4 select 
ARRAY(NAMED_STRUCT('attribute_value','null','key','null','value','null')) as additionalattribute
FROM (select '1' ) t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...