flatten_single

Aliases: flattensingle (deprecated).

flatten_single pathexpression: col array or object, [suggesttypes: bool]?

Given an object or array input, flatten the first level of child elements into key-value columns.

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_single is a less expensive operation than flatten or flatten_all. The default is to not suggest column types ('suggesttypes' = 'false'.) See also flatten, flatten_leaves, and flatten_all.

Categories

Accelerable

flatten_single 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_single foo

Given this JSON in column foo:

foo
{"a":{"aa":1},"b":{"bb":[{"bb1":2},{"bb2":3}]}}

flatten_single produces:

_c_foo_path_c_foo_value
a{"aa":1}
b{"bb":[{"bb1":2},{"bb2":3}]}

It recurses the JSON object and produces new columns that contain the path and values of the top level of keys in foo. Column 'foo' will be removed.

flatten_single foo, true

Given this JSON in column foo:

foo
{"a":{"aa":1},"b":{"bb":[{"bb1":2},{"bb2":3}]}}

flatten_single produces:

_c_foo_path_c_foo_value_c_foo_type
a{"aa":1}object
b{"bb":[{"bb1":2},{"bb2":3}]}object

It recurses the JSON object and produces new columns that contain the path and values of the top level of keys in foo. It will also attempt to determine the value's type, creating a third (hidden) column named '_c_foo_type'. Column 'foo' will be removed.