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 tematem Struktura do przechowywania i przetwarzania typów strukturalnych opisanych przez sekwencję 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ą one wynikiem analizowania ciągu JSON do VARIANT
funkcji parse_json().
Uwagi
- Aby wyodrębnić element
OBJECT
, możesz wykonać następujące czynności:-
variant_get funkcji przy użyciu wyrażenia ścieżki JSON, aby przejść do
OBJECT
typu. -
: (znak dwukropka) operator , aby przeanalizować
OBJECT
użycie wyrażenia ścieżki JSON. -
try_variant_get funkcji przy użyciu ścieżki JSON, aby przejść do
OBJECT
typu z tolerancją błędu. -
cast function lub :: (dwukropek znak dwukropka) operator rzutowania
OBJECT
na STRUCT lub MAP. -
try_cast funkcji lub ?:: (znak trójkropka) do rzutowania
OBJECT
elementu na STRUCT lub MAP.
-
variant_get funkcji przy użyciu wyrażenia ścieżki JSON, aby przejść do
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"}