OBJECT
-Typ
Gilt für: Databricks Runtime 15.3 und höher
Stellt Werte in VARIANT mit der Struktur dar, die von einer Gruppe von Feldern beschrieben wird
Weitere Informationen zum Speichern und Verarbeiten strukturierter Typen, die durch eine Gruppe von Feldern beschrieben werden, finden Sie unter STRUCT.
Wichtig
Das OBJECT
kann nicht in einer Tabellenspalte gespeichert werden.
Es wird nur beim Aufrufen von schema_of_variant oder schema_of_variant_agg verfügbar gemacht.
Um einen OBJECT
-Typ zu verwenden, müssen Sie ihn in STRUCT oder MAP umwandeln.
Syntax
OBJECT < [fieldName [:] fieldType [, ...] ] >
fieldName
: Ein Bezeichner, der das Feld benennt. Die Namen müssen eindeutig sein.fieldType
: Beliebiger Datentyp.
Grenzwerte
Der Typ unterstützt eine beliebige Anzahl von Feldern größer oder gleich 0.
Literale
Werte von OBJECT
können nicht außerhalb von VARIANT erstellt werden.
Sie sind das Ergebnis des Parsens einer JSON-Zeichenfolge in eine VARIANT
mithilfe der parse_json()-Funktion.
Hinweise
- So können Sie ein
OBJECT
extrahieren:- variant_get-Funktion mithilfe eines JSON-Pfadausdrucks, um zum
OBJECT
-Typ zu navigieren - :-Operator (Doppelpunkt), um
OBJECT
mithilfe eines JSON-Pfadausdrucks zu parsen - try_variant_get-Funktion mithilfe eines JSON-Pfads, um zu einem
OBJECT
-Typ mit Fehlertoleranz zu navigieren - cast-Funktion oder ::-Operator (Doppel-Doppelpunkt), um
OBJECT
in STRUCT oder MAP umzuwandeln - try_cast-Funktion oder ?::-Operator (Dreifach-Doppelpunkt), um
OBJECT
in STRUCT oder MAP umzuwandeln
- variant_get-Funktion mithilfe eines JSON-Pfadausdrucks, um zum
Beispiele
> 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"}