flatten_leaves¶
Type of operation: Semistructured
Description¶
Given an object or array input, recursively flatten all child elements into key-value columns, returning only leaf values.
The key and value child element columns are named ‘_c_NAME_path’ and ‘_c_NAME_value’. NAME is replaced with the original column name.
Flatten_leaves is a less expensive operation than flatten or flatten_all. The default is to not suggest column types (‘suggesttypes’ = ‘false’.) See also flatten, flatten_single, and flatten_all.
Usage¶
flatten_leaves pathexpression, [ suggesttypes ]
| Argument | Type | Optional | Repeatable | Restrictions | 
|---|---|---|---|---|
| pathexpression | array or object | no | no | column | 
| suggesttypes | bool | yes | no | none | 
Accelerable¶
flatten_leaves is always accelerable if the input is accelerable. A dataset that only uses accelerable verbs can be accelerated, making queries on the dataset respond faster.
Examples¶
flatten_leaves foo
Given this JSON in column foo:
| foo | 
|---|
| 
 | 
flatten_leaves produces:
| _c_foo_path | _c_foo_value | 
|---|---|
| 
 | 1 | 
| 
 | 2 | 
| 
 | 3 | 
It recurses the JSON object and produce new columns that contain every leaf path and its corresponding value, without intermediate objects. Column ‘foo’ will be removed.
flatten_leaves foo, true
Given this JSON in column foo:
| foo | 
|---|
| 
 | 
flatten_leaves produces:
| _c_foo_path | _c_foo_value | _c_foo_type | 
|---|---|---|
| 
 | 1 | int64 | 
| 
 | 2 | int64 | 
| 
 | 3 | int64 | 
It recurses the JSON object and produces new columns that contain every leaf path and its corresponding value, without intermediate objects. It will also attempt to determine the value’s type, creating a third (hidden) column named ‘_c_foo_type’. Column ‘foo’ will be removed.
Aliases¶
- flattenleaves(deprecated)