Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Type
S’applique à : Databricks Runtime 15.3 et versions ultérieures
Représente des valeurs dans un VARIANT avec la structure décrite par un ensemble de champs.
Reportez-vous à STRUCT pour stocker et traiter des types structurés décrits par une séquence de champs.
Important
OBJECT
ne peut pas être stocké dans une colonne de table.
Elle n’est exposée que lors de l’appel de schema_of_variant ou de schema_of_variant_agg.
Pour utiliser un OBJECT
type, vous devez le caster en STRUCT ou MAP.
Syntaxe
OBJECT < [fieldName [:] fieldType [, ...] ] >
-
fieldName
: identificateur qui nomme le champ. Les noms doivent être uniques. -
fieldType
: n’importe quel type de données.
Limites
Le type prend en charge un nombre quelconque de champs supérieur ou égal à 0.
Littéraux
Les valeurs de OBJECT
ne peuvent pas être créées en dehors d’un VARIANT.
Ils sont le résultat de l’analyse d’une chaîne JSON en un VARIANT
par l'utilisation de la fonction parse_json().
Remarques
- Pour extraire un
OBJECT
, vous pouvez utiliser :-
variant_get
fonction utilisant une expression de chemin JSON pour accéder auOBJECT
type. -
l’opérateur
:
(signe deux-points) pour analyserOBJECT
à l’aide d’une expression de chemin JSON. -
try_variant_get
fonction utilisant un chemin JSON pour accéder à unOBJECT
type avec tolérance d’erreur. - La fonction
cast
ou l’opérateur (deux signes deux-points)::
pour caster leOBJECT
en un STRUCT ou MAP. - la fonction
try_cast
ou l’opérateur (trois signes deux-points)?::
pour caster leOBJECT
en un STRUCT ou MAP.
-
Exemples
> 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"}