Typ: OBJECT
Dotyczy: Databricks Runtime 15.3 lub nowszy
Reprezentuje values w VARIANT ze strukturą opisaną przez set 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 tablecolumn.
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
: Nazwa pola przez identifier. Nazwy muszą być unikatowe. -
fieldType
: dowolny typ danych.
Limity
Typ obsługuje dowolną liczbę pól większej lub równej 0.
Literały
Values
OBJECT
nie może być utworzony 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"}