Как создать пустой массив struct в улье? - PullRequest
3 голосов
/ 07 мая 2019

У меня есть представление в Hive 1.1.0, основанное на условии, оно должно возвращать пустой массив или массив struct<name: string, jobslots: int>

Вот мой код:

select
case when <condition> 
then array()
else array(struct(t1.name, t1.jobslots))
end
from table t1;

Проблема в том, что пустой массив array() имеет тип array<string>.Поэтому, когда я пытаюсь вставить его в таблицу, выдается ошибка.

Как я могу изменить это, чтобы возвращать пустой массив типа array<struct<name: string, jobslots:int>>, чтобы функция Hive's size() возвращала 0 в этом массиве?

1 Ответ

0 голосов
/ 08 мая 2019

Кажется, что это работает так:

select array(named_struct('name',null,'jobslot',null));

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...