2016-03-30 4 views
0

Мне нужен запрос, который возвращает массивы и структуры. я пробовал:синтаксис hive для возвращаемых массивов и структур

select Array(1) from my_table limit 1; 

и он работает, но дает некоторые ошибки:

ОШИБКА optimizer.ConstantPropagateProcFactory: Невозможно оценить [email protected] , Возврат Значение unrecoginizable.

же для структур:

select Struct(1,2) from my_table limit 1; 

работы и возвращает

{"col1":1,"col2":2} 

как установить имена столбцов?

также выводит сообщение об ошибке

ОШИБКА optimizer.ConstantPropagateProcFactory: Невозможно оценить [email protected] Возвращаемое значение невосстанавливается.

ответ

0

Вам нужно указать имена столбцов или выбрать *, чтобы возвращать фактические столбцы и данные в таблице.

select Array(*) from yourTableName limit 1; 
select Array(field1,field2) from yourTableName limit 1; 
select Struct(*) from yourTableName limit 1; 
select Struct(field1,field2) from yourTableName limit 1;