2015-03-13 2 views
0

В Hive мы храним сложные типы данных, используя thriftserdes (сериализатор/десериализаторы).Как использовать тип перечисления в качестве ключа карты в Hive

В качестве примера:

> describe foo.a_map; 
a_map map<AnEnumType,string> from deserializer 

Мы можем получить доступ к этим вещам, используя Cascading, но я хотел бы использовать улей.

Если я попытаюсь использовать целое число (к которому относится тип перечисления), то уль берет.

select foo.a_map[0] from foo limit 10; 
FAILED: SemanticException [Error 10032]: Line 2:7 MAP key type does not match index expression type '0' 

Идеи?

ответ

0

Я закончил тем, что взорвал карту, вид сбоку, затем перешел к строке и соответствовал строке. Что-то вроде

select key1, value1 
from foo 
lateral view explode(a_map) foo_table as key1, value1 
where cast(key1 as string) = '0' 
Смежные вопросы