OBJECT
type
Van toepassing op: Databricks Runtime 15.3 en hoger
Vertegenwoordigt waarden in een VARIANT met de structuur die wordt beschreven door een set velden.
Raadpleeg STRUCT voor het opslaan en verwerken van gestructureerde typen die worden beschreven door een reeks velden.
Belangrijk
De OBJECT
kolom kan niet worden opgeslagen in een tabelkolom.
Deze wordt alleen weergegeven wanneer u schema_of_variant of schema_of_variant_agg aanroept.
Als u een OBJECT
type wilt gebruiken, moet u het casten naar een STRUCT of MAP.
Syntaxis
OBJECT < [fieldName [:] fieldType [, ...] ] >
fieldName
: Een id met de naam van het veld. De namen moeten uniek zijn.fieldType
: elk gegevenstype.
Limieten
Het type ondersteunt een willekeurig aantal velden groter of gelijk aan 0.
Letterlijke waarden
Waarden van OBJECT
kunnen niet buiten een VARIANT worden gemaakt.
Ze zijn het resultaat van het parseren van een JSON-tekenreeks in een VARIANT
met behulp van de functie parse_json().
Opmerkingen
- U kunt het volgende extraheren
OBJECT
:- variant_get functie met behulp van een JSON-padexpressie om naar het
OBJECT
type te navigeren. - : (dubbele puntteken) om het
OBJECT
gebruik van een JSON-padexpressie te parseren. - try_variant_get functie met behulp van een JSON-pad om naar een
OBJECT
type te navigeren met fouttolerantie. - cast-functie of :: (dubbele puntteken) om de
OBJECT
STRUCT of MAP te casten. - try_cast functie of ?:: (driedubbele dubbele punt) operator om de
OBJECT
naar een STRUCT of MAP te casten.
- variant_get functie met behulp van een JSON-padexpressie om naar het
Voorbeelden
> 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"}