Typ OBJECT
Platí pro: Databricks Runtime 15.3 a novější
Představuje hodnoty v VARIANT se strukturou popsanou sadou polí.
Informace o ukládání a zpracování strukturovaných typů popsaných v posloupnosti polí najdete v části STRUCT .
Důležité
OBJECT
nelze uložit ve sloupci tabulky.
Zobrazí se pouze při volání schema_of_variant nebo schema_of_variant_agg.
Chcete-li použít OBJECT
typ, musíte jej přetypovat na strukturu nebo MAPOVÁNÍ.
Syntaxe
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName
: Identifikátor pojmenovávající pole. Názvy musí být jedinečné. -
fieldType
: Libovolný datový typ.
Omezení
Typ podporuje libovolný počet polí větších nebo rovnajících se 0.
Literály
Hodnoty OBJECT
nelze vytvořit mimo VARIANT.
Jedná se o výsledek analýzy řetězce JSON do VARIANT
funkce parse_json().
Notes
- Extrahování
OBJECT
můžete provést:-
variant_get funkci pomocí výrazu cesty JSON k přechodu na
OBJECT
typ. -
: (dvojtečka) operátor pro parsování
OBJECT
pomocí výrazu cesty JSON. -
try_variant_get funkce s použitím cesty JSON k přechodu na typ s chybou
OBJECT
tolerance. -
operátor cast nebo :: (dvojtečka) pro přetypování
OBJECT
na STRUCT nebo MAP. -
try_cast operátor funkce nebo ?:: (trojnásobný znak dvojtečky) pro přetypování
OBJECT
na STRUCT nebo MAP.
-
variant_get funkci pomocí výrazu cesty JSON k přechodu na
Příklady
> 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"}