Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Агрегатная функция
Применяется к:
Databricks SQL
Databricks Runtime 13.2 и более поздних версий
Возвращает объединенную схему всех строк JSON в группе в формате DDL.
Синтаксис
schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]
Эту функцию также можно вызвать как функцию окна с помощью предложения OVER.
Аргументы
-
jsonStr: литералSTRINGсJSON. -
options: необязательный литералMAPс ключами и значениями,STRING. Дополнительные сведения о параметрах см. в разделеfrom_json"Функция". -
cond: необязательноеBOOLEANвыражение, фильтрующее строки, используемые для агрегирования.
Возвраты
STRING, содержащий определение массива структур с n полями строк, в котором имена столбцов выводятся из уникального набора ключей JSON.
Значения полей содержат производные форматированные типы SQL.
Схема каждой записи объединяется по имени поля.
Если два поля с одинаковым именем имеют другой тип в записях, Azure Databricks использует наименее распространенный тип.
Если такой тип не существует, тип является производным как .STRING
Например, и стать, а INTDOUBLE также статьDOUBLE.STRUCT<i INT>STRINGSTRING
Схема, полученная из чтения столбца данных JSON, совпадает с той, которая получена из следующего.
SELECT * FROM json.`/my/data`;
Чтобы вывести схему одной JSON строки, используйте schema_of_json функцию.
Примеры
> SELECT schema_of_json_agg(a) FROM VALUES('{"foo": "bar"}') AS data(a);
STRUCT<foo: STRING>
> SELECT schema_of_json_agg(a) FROM VALUES('[1]') AS data(a);
ARRAY<BIGINT>
> CREATE TEMPORARY VIEW data(a) AS VALUES
('{"foo": "bar", "wing": {"ding": "dong"}}'),
('{"top": "level", "wing": {"stop": "go"}}')
> SELECT schema_of_json_agg(a) FROM data;
STRUCT<foo: STRING,top: STRING,wing: STRUCT<ding: STRING, stop: STRING>>