2016-07-22 2 views
1

Если в моей таблице есть столбец типа Map, как я могу его фильтровать? Допустим, я хочу сказать: -Как фильтровать по столбцу типа данных карты в запросе HQL

select * from mytable where col.get("key1") = 1; 

это синтаксически не правильно, но вы получите точку, что я пытаюсь сделать здесь. Какой правильный синтаксис для этого?

+0

Возможный дубликат [Карта переменной типа в улье] (HTTP : //stackoverflow.com/questions/14514669/map-type-variable-in-hive) – maxymoo

+0

Не дубликат. Ссылка, которую вы рассказали о определении типа данных карты в Hive, не обсуждает, как ее фильтровать. Thx – Dhiraj

+1

Посмотрите под заголовком «Доступ к столбцу карты» в первом ответе – maxymoo

ответ

1

Да, вы можете! Обратитесь к этому ключевому элементу карты внутри '[]'. Например

select * from mytable where col["key"] = value; 

надеюсь, что это решит проблему :)

0

Вы также можете использовать точечную нотацию, кстати:

select * from mytable where col.key = value; 
Смежные вопросы