Typ: OBJECT
Gäller för: Databricks Runtime 15.3 och senare
Representerar värden i en VARIANT- med strukturen som beskrivs av en uppsättning fält.
Se STRUCT för lagring och bearbetning av strukturerade typer som beskrivs av en sekvens med fält.
Viktigt!
Det går inte att lagra OBJECT
i en tabellkolumn.
Den exponeras bara när du anropar schema_of_variant eller schema_of_variant_agg.
Om du vill använda en OBJECT
typ måste du omvandla den till en STRUCT eller MAP.
Syntax
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName
: En identifierare som namnger fältet. Namnen måste vara unika. -
fieldType
: Alla datatyper.
Gränser
Typen stöder valfritt antal fält som är större eller lika med 0.
Literaler
Det går inte att skapa värden för OBJECT
utanför en VARIANT-.
De är resultatet av att parsa en JSON-sträng i en VARIANT
med hjälp av funktionen parse_json().
Kommentar
- Om du vill extrahera en
OBJECT
kan du:-
variant_get funktion med hjälp av ett JSON-sökvägsuttryck för att navigera till
OBJECT
typen. -
: operatorn (kolontecken) för att parsa med hjälp av
OBJECT
ett JSON-sökvägsuttryck. -
try_variant_get funktion med hjälp av en JSON-sökväg för att navigera till en
OBJECT
typ med fel tolererande. -
cast-funktion eller :: (kolontecken) operator för att kasta
OBJECT
till en STRUCT eller MAP. -
try_cast funktion eller ?:: operator (trippelkolontecken) för att omvandla
OBJECT
till en STRUCT eller MAP.
-
variant_get funktion med hjälp av ett JSON-sökvägsuttryck för att navigera till
Exempel
> 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"}