Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime
Retourneert een set rijen door het ontvouwen van collection.
In Databricks SQL en Databricks Runtime 13.3 LTS en hoger ondersteunt deze functie benoemde parametertoeroepen.
Syntaxis
explode(collection)
Argumenten
-
collection: EenARRAYofMAPexpressie.
Retouren
Een set rijen die bestaan uit de elementen van de matrix of de sleutels en waarden van de kaart.
De kolom die wordt geproduceerd door explode van een matrix heeft de naam col.
De kolommen voor een kaart worden key en valuegenoemd.
Als collectionNULL zijn, worden er geen rijen geproduceerd. Als u één rij wilt retourneren met NULLs voor de matrix- of kaartwaarden, gebruikt u de functie explode_outer().
Van toepassing op:
Databricks Runtime 12.1 en eerder:explodekan alleen in deSELECT-lijst worden geplaatst als wortel van een expressie of na een LATERAL VIEW. Bij het plaatsen van de functie in deSELECT-lijst mag er geen andere generatorfunctie in dezelfdeSELECT-lijst staan of de foutmelding UNSUPPORTED_GENERATOR.MULTI_GENERATOR wordt gegenereerd.Van toepassing op:
Databricks SQL
Databricks Runtime 12.2 LTS en hoger:Aanroep van de LATERAL VIEW clausule of de
SELECTlijst is verouderd. Roep in plaats daarvanexplodeaan als een table_reference.
Voorbeelden
Van toepassing op:
Databricks SQL
Databricks Runtime 12.1 en eerder:
> SELECT explode(array(10, 20)) AS elem, 'Spark';
10 Spark
20 Spark
> SELECT explode(map(1, 'a', 2, 'b')) AS (num, val), 'Spark';
1 a Spark
2 b Spark
> SELECT explode(array(1, 2)), explode(array(3, 4));
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR
-- The difference between explode() and explode_outer() is that explode_outer() returns NULL if the array is NULL.
> SELECT explode_outer(c1) AS elem, 'Spark' FROM VALUES(array(10, 20)), (null) AS T(c1);
10 Spark
20 Spark
NULL Spark
> SELECT explode(c1) AS elem, 'Spark' FROM VALUES(array(10, 20)), (null) AS T(c1);
10 Spark
20 Spark
Van toepassing op:
Databricks SQL
Databricks Runtime 12.2 LTS en hoger:
> SELECT elem, 'Spark' FROM explode(array(10, 20)) AS t(elem);
10 Spark
20 Spark
> SELECT num, val, 'Spark' FROM explode(map(1, 'a', 2, 'b')) AS t(num, val);
1 a Spark
2 b Spark
> SELECT * FROM explode(array(1, 2)), explode(array(3, 4));
1 3
1 4
2 3
2 4
-- Using lateral correlation in Databricks 12.2 and above
> SELECT * FROM explode(array(1, 2)) AS t, LATERAL explode(array(3 * t.col, 4 * t.col));
1 3
1 4
2 6
2 8