Typ: OBJECT
Dotyczy: Databricks Runtime 15.3 lub nowszy
Wartości w VARIANT są reprezentowane przez strukturę opisaną za pomocą zestawu pól.
Zapoznaj się z STRUKTURA w celu przechowywania i przetwarzania typów strukturalnych opisanych jako sekwencja pól.
Ważne
Nie można przechowywać OBJECT
w kolumnie tabeli.
Jest on ujawniany tylko podczas wywoływania schema_of_variant lub schema_of_variant_agg.
Aby użyć OBJECT
typu, należy rzutować go na STRUKTURĘ lub MAPĘ.
Składnia
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName
: identyfikator nazewnictwa pola. Nazwy muszą być unikatowe. -
fieldType
: dowolny typ danych.
Limity
Typ obsługuje dowolną liczbę pól większej lub równej 0.
Literały
Wartości OBJECT
nie można tworzyć poza WARIANTEM.
Są wynikiem przekształcenia ciągu JSON w VARIANT
za pomocą funkcji parse_json().
Uwagi
- Aby wyodrębnić element
OBJECT
, możesz wykonać następujące czynności:-
funkcja variant_get przy użyciu wyrażenia ścieżki JSON do nawigacji do typu
OBJECT
. -
: (znak dwukropka) operator do analizy
OBJECT
za pomocą wyrażenia ścieżki JSON. -
funkcja try_variant_get przy użyciu ścieżki JSON, aby odwołać się do
OBJECT
typu z tolerancją błędów. -
cast function lub operator :: (dwukropek) aby zrzuć
OBJECT
na STRUCT lub MAP. - Funkcja try_cast lub operator ?:: (znak trójkropka) do rzutowania
OBJECT
na STRUCT lub MAP.
-
funkcja variant_get przy użyciu wyrażenia ścieżki JSON do nawigacji do typu
Przykłady
> 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"}