Разворачивание массивов
Преобразование flatten разворачивает поля, содержащие массивы. Для каждого элемента массива оно создаёт отдельную запись: извлечённое значение соседствует с остальными полями исходной записи.
// Любая спецификация представления
{
...,
"transform": [
{"flatten": ...}, // Разворачивание массивов
...
],
...
}
Свойства преобразования
| Свойство | Тип | Описание |
|---|---|---|
flatten |
FieldName[] | Обязательный массив имён полей, содержащих массивы. Если полей несколько, их массивы должны иметь параллельную структуру, в идеале — одинаковую длину; элементы с одинаковыми индексами объединяются в одну выходную запись. Если длины различаются, используется самый длинный массив, а недостающие элементы дополняются значениями null. |
as |
FieldName[] | Необязательный массив имён выходных полей для извлечённых значений. По умолчанию используются соответствующие исходные имена. |
Использование
{"flatten": ["foo", "bar"]}
В этом примере разворачиваются поля-массивы "foo" и "bar". Для входных данных:
[
{"key": "alpha", "foo": [1, 2], "bar": ["A", "B"]},
{"key": "beta", "foo": [3, 4, 5], "bar": ["C", "D"]}
]
получится результат:
[
{"key": "alpha", "foo": 1, "bar": "A"},
{"key": "alpha", "foo": 2, "bar": "B"},
{"key": "beta", "foo": 3, "bar": "C"},
{"key": "beta", "foo": 4, "bar": "D"},
{"key": "beta", "foo": 5, "bar": null}
]
Примеры
Следующие примеры показывают использование преобразования flatten.
Простой пример
Два поля разворачиваются одновременно. В выходных записях более короткий массив дополняется значениями null.
Согласованные представления с вложенным временным рядом
Здесь разворачивается одно поле, затем его значения используются для линейной диаграммы, согласованной с диаграммой кругов выше.