You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jacques Nadeau (JIRA)" <ji...@apache.org> on 2014/12/29 00:31:19 UTC
[jira] [Updated] (DRILL-1689) Drill could not query a repeated map,
and get all the values of one field into an array.
[ https://issues.apache.org/jira/browse/DRILL-1689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jacques Nadeau updated DRILL-1689:
----------------------------------
Issue Type: New Feature (was: Bug)
> 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: New Feature
> Reporter: Jinfeng Ni
> Fix For: Future
>
>
> 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)