Teilen über


TableValuedFunction.explode

Gibt einen DataFrame zurück, der eine neue Zeile für jedes Element in der angegebenen Matrix oder Zuordnung enthält. Verwendet den Standardspaltennamen col für Elemente im Array und keyvalue für Elemente in der Zuordnung, sofern nicht anders angegeben.

Syntax

spark.tvf.explode(collection)

Die Parameter

Parameter Typ Description
collection pyspark.sql.Column Zielspalte, an der gearbeitet werden soll.

Rückkehr

pyspark.sql.DataFrame: Ein DataFrame mit einer neuen Zeile für jedes Element.

Examples

Beispiel 1: Explodieren einer Arrayspalte

import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).show()
+---+
|col|
+---+
|  1|
|  2|
|  3|
+---+

Beispiel 2: Explodieren einer Kartenspalte

import pyspark.sql.functions as sf
spark.tvf.explode(
    sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).show()
+---+-----+
|key|value|
+---+-----+
|  a|    b|
|  c|    d|
+---+-----+

Beispiel 3: Explodieren eines Arrays von Strukturspalten

import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(
    sf.named_struct(sf.lit("a"), sf.lit(1), sf.lit("b"), sf.lit(2)),
    sf.named_struct(sf.lit("a"), sf.lit(3), sf.lit("b"), sf.lit(4))
)).select("col.*").show()
+---+---+
|  a|  b|
+---+---+
|  1|  2|
|  3|  4|
+---+---+

Beispiel 4: Explodieren einer leeren Arrayspalte

import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
+---+
|col|
+---+
+---+

Beispiel 5: Explodieren einer leeren Kartenspalte

import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
+---+-----+
|key|value|
+---+-----+
+---+-----+