Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
тип
Область применения: Databricks Runtime 15.3 и выше
Представляет значения в VARIANT со структурой, описанной набором полей.
См. инструкции STRUCT по хранению и обработке структурированных типов, описанных последовательностью полей.
Внимание
OBJECT
нельзя хранить в столбце таблицы.
Он предоставляется только при вызове schema_of_variant или schema_of_variant_agg.
Чтобы использовать OBJECT
тип, необходимо привести его к структуре или типу MAP.
Синтаксис
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName
: идентификатор, именующий поле. Имена должны быть уникальными. -
fieldType
: любой тип данных.
Ограничения
Этот тип поддерживает любое число полей, от 0 и более.
Литералы
Нельзя создать значения OBJECT
за пределами VARIANT.
Они являются результатом анализа строки JSON в VARIANT
с использованием функции parse_json().
Примечания.
- Чтобы извлечь
OBJECT
, вы можете:-
variant_get
функция используя выражение пути JSON для навигации к типуOBJECT
. -
:
Оператор (знак двоеточия) для синтаксического анализаOBJECT
с помощью выражения пути JSON. -
try_variant_get
функция с помощью пути JSON для перехода кOBJECT
типу с допуском ошибок. -
cast
функция или::
оператор (знак двоеточия) для приведенияOBJECT
к STRUCT или MAP. -
try_cast
функция или?::
(оператор тройного двоеточия) для преобразованияOBJECT
в STRUCT или MAP.
-
Примеры
> SELECT schema_of_variant(parse_json('{"key": 123, "data": 5.1 }'));
OBJECT<data: DECIMAL(2,1), key: BIGINT>
-- Casting from a an OBJECT to a STRUCT is by name, because OBJECT fields are not ordered.
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<data: DECIMAL(2,1), key: BIGINT>);
{"data":5.1,"key":123}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS STRUCT<key: BIGINT, data: DECIMAL(2,1)>);
{"key":123, "data":5.1}
> SELECT CAST(parse_json('{"key": 123, "data": 5.1 }') AS MAP<STRING, DECIMAL(20, 1)>);
{"data":"5.1","key":"123.0"}