Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt eine neue Zeile für jedes einzelne Element im angegebenen Array oder der angegebenen Map zurück. Im Gegensatz zu explodieren, wenn das Array/die Zuordnung null oder leer ist, wird NULL erzeugt. Verwendet den Standardspaltennamen col für Elemente im Array und keyvalue für Elemente in der Zuordnung, sofern nicht anders angegeben.
Syntax
from pyspark.sql import functions as sf
sf.explode_outer(col)
Die Parameter
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column oder Spaltenname |
Zielspalte, an der gearbeitet werden soll. |
Rückkehr
pyspark.sql.Column: eine Zeile pro Arrayelement oder Zuordnungsschlüsselwert.
Examples
Beispiel 1: Verwenden einer Arrayspalte
from pyspark.sql import functions as sf
df = spark.sql('SELECT * FROM VALUES (1,ARRAY(1,2,3,NULL)), (2,ARRAY()), (3,NULL) AS t(i,a)')
df.select('*', sf.explode_outer('a')).show()
+---+---------------+----+
| i| a| col|
+---+---------------+----+
| 1|[1, 2, 3, NULL]| 1|
| 1|[1, 2, 3, NULL]| 2|
| 1|[1, 2, 3, NULL]| 3|
| 1|[1, 2, 3, NULL]|NULL|
| 2| []|NULL|
| 3| NULL|NULL|
+---+---------------+----+
Beispiel 2: Verwenden einer Kartenspalte
from pyspark.sql import functions as sf
df = spark.sql('SELECT * FROM VALUES (1,MAP(1,2,3,4,5,NULL)), (2,MAP()), (3,NULL) AS t(i,m)')
df.select('*', sf.explode_outer('m')).show(truncate=False)
+---+---------------------------+----+-----+
|i |m |key |value|
+---+---------------------------+----+-----+
|1 |{1 -> 2, 3 -> 4, 5 -> NULL}|1 |2 |
|1 |{1 -> 2, 3 -> 4, 5 -> NULL}|3 |4 |
|1 |{1 -> 2, 3 -> 4, 5 -> NULL}|5 |NULL |
|2 |{} |NULL|NULL |
|3 |NULL |NULL|NULL |
+---+---------------------------+----+-----+