variant_explode
-Tabellenwertfunktion
Gilt für: Databricks SQL
Databricks Runtime 15.3 und höher
Gibt eine Reihe von Zeilen zurück, indem sie die Schachtelung von input
aufheben.
In Databricks SQL sowie Databricks Runtime 16.1 und höher unterstützt diese Funktion den Aufruf benannter Parameter.
Syntax
variant_explode ( input )
Argumente
variantExpr
: EinVARIANT
-Ausdruck, der einVARIANT
-Objekt oder eineVARIANT ARRAY
-Instanz darstellt.
Gibt zurück
Zeilen, die aus den Elementen der VARIANT ARRAY
-Instanz oder den Schlüsseln und Werten des VARIANT
-Objekts bestehen.
Die von variant_explode
erzeugten Spalten sind:
pos INT
key STRING
value VARIANT
.
Beim Explodieren eines VARIANT
-Objekts stellen die Ausgabespalten key
und value
die Schlüssel und Werte des Objekts dar.
Beim Explodieren eines VARIANT
-Arrays ist die key
-Ausgabe immer NULL
, und die Ausgabespalte value
stellt die Elemente des Arrays dar.
Wenn input
NULL
ist oder kein VARIANT ARRAY
- oder VARIANT
-Objekt ist, werden keine Zeilen erstellt.
Um in diesem Fall eine einzelne Zeile mit NULL
-Werten zu erstellen, verwenden Sie die variant_explode_outer-Funktion.
Beispiele
-- 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