2015-10-27 4 views
2

У меня есть объект, как это в дрелью:Как запросить массив?

{MyFruit: [{name:Mike, age:10},{name:Jacob,age:9},{name:William, age:6}]} 

я могу получить «Майк», выполнив:

Select MyFruit[0].name 

Есть ли способ для меня, чтобы получить список каждого «имя» ? Я попытался следующие, и это не нравится:

Select MyFruit[*].name 

ответ

3

Учитывая этот fruits.json файл:

{"MyFruit": [{"name":"Mike", "age":10},{"name":"Jacob","age":9},{"name":"William", "age":6}]} 

Заявление сверло:

select t.flatdata.name from (select flatten(MyFruit) as flatdata from dfs.`/Users/path/fruits.json`) t; 
+----------+ 
| EXPR$0 | 
+----------+ 
| Mike  | 
| Jacob | 
| William | 
+----------+ 
3 rows selected (0.14 seconds) 

Вы должны использовать подзапрос который выравнивает сложные вложенности и псевдонимы таблицы, t и flatdata, которые разрешают двусмысленности.

 Смежные вопросы

  • Нет связанных вопросов^_^