如何查询数组?
How to query on an array?
我在 drill 中有这样一个对象:
{MyFruit: [{name:Mike, age:10},{name:Jacob,age:9},{name:William, age:6}]}
我可以通过以下方式获得 "Mike":
Select MyFruit[0].name
有没有办法让我得到每个 "name" 的列表?我尝试了以下但它不喜欢它:
Select MyFruit[*].name
鉴于此 fruits.json 文件:
{"MyFruit": [{"name":"Mike", "age":10},{"name":"Jacob","age":9},{"name":"William", "age":6}]}
Drill 语句是:
select t.flatdata.name from (select flatten(MyFruit) as flatdata from dfs.`/Users/path/fruits.json`) t;
+----------+
| EXPR[=11=] |
+----------+
| Mike |
| Jacob |
| William |
+----------+
3 rows selected (0.14 seconds)
您需要使用一个子查询来展平复杂的嵌套和 table 别名 t 和 flatdata,以解决歧义。
我在 drill 中有这样一个对象:
{MyFruit: [{name:Mike, age:10},{name:Jacob,age:9},{name:William, age:6}]}
我可以通过以下方式获得 "Mike":
Select MyFruit[0].name
有没有办法让我得到每个 "name" 的列表?我尝试了以下但它不喜欢它:
Select MyFruit[*].name
鉴于此 fruits.json 文件:
{"MyFruit": [{"name":"Mike", "age":10},{"name":"Jacob","age":9},{"name":"William", "age":6}]}
Drill 语句是:
select t.flatdata.name from (select flatten(MyFruit) as flatdata from dfs.`/Users/path/fruits.json`) t;
+----------+
| EXPR[=11=] |
+----------+
| Mike |
| Jacob |
| William |
+----------+
3 rows selected (0.14 seconds)
您需要使用一个子查询来展平复杂的嵌套和 table 别名 t 和 flatdata,以解决歧义。