You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jinfeng Ni (JIRA)" <ji...@apache.org> on 2014/11/12 00:57:34 UTC
[jira] [Created] (DRILL-1689) Drill could not query a repeated map,
and get all the values of one field into an array.
Jinfeng Ni created DRILL-1689:
---------------------------------
Summary: Drill could not query a repeated map, and get all the values of one field into an array.
Key: DRILL-1689
URL: https://issues.apache.org/jira/browse/DRILL-1689
Project: Apache Drill
Issue Type: Bug
Reporter: Jinfeng Ni
Suppose we have the following JSON data:
{code}
{
"uid" : 1,
"events" : [
{ "evnt_id":"e1", "campaign_id":"c1", "event_name":"e1_name", "event_time":1000000},
{ "evnt_id":"e2", "campaign_id":"c1", "event_name":"e2_name", "event_time":2000000},
{ "evnt_id":"e3", "campaign_id":"c1", "event_name":"e3_name", "event_time":3000000},
{ "evnt_id":"e4", "campaign_id":"c1", "event_name":"e4_name", "event_time":4000000},
{ "evnt_id":"e5", "campaign_id":"c2", "event_name":"e5_name", "event_time":5000000},
{ "evnt_id":"e6", "campaign_id":"c1", "event_name":"e6_name", "event_time":6000000},
{ "evnt_id":"e7", "campaign_id":"c1", "event_name":"e7_name", "event_time":7000000},
{ "evnt_id":"e8", "campaign_id":"c2", "event_name":"e8_name", "event_time":8000000},
{ "evnt_id":"e9", "campaign_id":"c2", "event_name":"e9_name", "event_time":9000000}
],
"transactions" : [
{ "trans_id":"t1", "amount":100, "trans_time":7777777},
{ "trans_id":"t2", "amount":100, "trans_time":8888888}
]
}
{code}
"transactions" is repeated map. We could return a field "trans_id" in i-th map in this repeated map.
{code}
select t.transactions[1].trans_id from dfs.`/Users/jni/work/data/json/single-user-transactions.json` t;
+------------+
| EXPR$0 |
+------------+
| t2 |
+------------+
{code}
However, if we want to get field "trans_id" from "ALL" the maps in this array, Drill will fail with exception:
{code}
select t.transactions.trans_id from dfs.`/Users/jni/work/data/json/single-user-transactions.json` t;
Query failed: Failure while running fragment., org.apache.drill.exec.vector.complex.RepeatedMapVector cannot be cast to org.apache.drill.exec.vector.complex.MapVector [ 1317f855-b33a-4023-9164-3f22e7e8f1bf on 10.250.0.112:31013 ]
{code}
For the above query, SchemaPath "t.transactions.trans_id" should return an array of "trans_id", i.e ["t1", "t2"].
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)