Charles Givre created DRILL-7861:
------------------------------------
Summary: Add Function to Obtain Inner Map Schemata
Key: DRILL-7861
URL: https://issues.apache.org/jira/browse/DRILL-7861
Project: Apache Drill
Issue Type: Improvement
Components: Metadata
Affects Versions: 1.18.0
Reporter: Charles Givre
Assignee: Charles Givre
Fix For: 1.19.0
This function allows you to drill down into the schema of maps. The REST API
and JDBC interfaces will only return `MAP`, `LIST` for the MAP, however, it is
not possible to get
the schema of the inner map. The function `getMapSchema(<MAP>)` will return a
`MAP` of the fields and datatypes.
### Example Usage
Using the data below, the query below will return the schema as shown below.
```bash
apache drill> SELECT getMapSchema(record) AS schema FROM
dfs.test.`schema_test.json`;
+----------------------------------------------------------------------------------+
| schema
|
+----------------------------------------------------------------------------------+
|
{"int_field":"BIGINT","double_field":"FLOAT8","string_field":"VARCHAR","int_list":"REPEATED_BIGINT","double_list":"REPEATED_FLOAT8","map":"MAP"}
|
+----------------------------------------------------------------------------------+
1 row selected (0.298 seconds)
```
```json
{
"record" : {
"int_field": 1,
"double_field": 2.0,
"string_field": "My string",
"int_list": [1,2,3],
"double_list": [1.0,2.0,3.0],
"map": {
"nested_int_field" : 5,
"nested_double_field": 5.0,
"nested_string_field": "5.0"
}
},
"single_field": 10
}
```
The function returns an empty map if the row is `null`.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)