variant_explode
fonction table
S’applique à : Databricks SQL Databricks Runtime 15.3 et versions ultérieures
Retourne un ensemble de lignes en dés imbrication variantExpr
.
Syntaxe
variant_explode ( variantExpr )
Arguments
variantExpr
: expressionVARIANT
représentant un objetVARIANT
ouVARIANT ARRAY
.
Retours
Ensemble de lignes composées des éléments du VARIANT ARRAY
ou des clés et des valeurs de l’objet VARIANT
.
Les colonnes produites par variant_explode
sont les suivantes :
pos INT
key STRING
value VARIANT
.
Lors de l’explosion d’un objet VARIANT
, les colonnes key
et value
de sortie représentent les clés et les valeurs de l’objet.
Lors de l’explosion d’un tableau VARIANT
, le key
de sortie est toujours NULL
et la colonne value
de sortie représente les éléments du tableau.
Si variantExpr
est NULL
ou n’est pas un objet VARIANT ARRAY
ou VARIANT
, aucune ligne n’est générée.
Pour générer une seule ligne des valeurs NULL
dans ce cas, utilisez la fonction variant_explode_outer.
Exemples
-- Simple example
> SELECT *
FROM variant_explode(parse_json('[1, "a", {"b": "hello"}]'));
pos key value
--- ---- -------------
0 NULL 1
1 NULL "a"
2 NULL {"b":"hello"}
> SELECT *
FROM variant_explode(parse_json('{"foo":1,"bar":"hello"}'));
pos key value
--- ---- -------------
0 bar "hello"
1 foo 1
-- Using lateral correlation
> SELECT t.value AS outer, u.value AS inner
FROM variant_explode(parse_json('[[1, 2], [3, 4]]')) AS t,
LATERAL variant_explode(t.value) AS u;
outer inner
----- -----
[1,2] 1
[1,2] 2
[3,4] 3
[3,4] 4