Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Retourne un DataFrame contenant une nouvelle ligne pour chaque élément du tableau ou de la carte donné. Le nom de colonne par défaut est col destiné aux éléments d’un tableau et keyvalue aux éléments d’une carte. Pour utiliser différents noms de colonnes, appelez toDF() le DataFrame retourné.
Syntaxe
spark.tvf.explode(collection)
Paramètres
| Paramètre | Type | Descriptif |
|---|---|---|
collection |
pyspark.sql.Column |
Colonne cible sur laquelle travailler. |
Retours
pyspark.sql.DataFrame: DataFrame avec une nouvelle ligne pour chaque élément.
Examples
Exemple 1 : explosion d’une colonne de tableau
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|
+---+
Exemple 2 : Exploding a map column
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|
+---+-----+
Exemple 3 : Exploding an array of struct column
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|
+---+---+
Exemple 4 : Explosion d’une colonne de tableau vide
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
+---+
|col|
+---+
+---+
Exemple 5 : Exploding an empty map column
import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
+---+-----+
|key|value|
+---+-----+
+---+-----+
Exemple 6 : Substitution des noms de colonnes par défaut
Étant donné que spark.tvf.explode retourne un DataFrame, utilisez toDF() pour renommer les colonnes de sortie.
.alias() n’a aucun effet sur les colonnes explosées.
import pyspark.sql.functions as sf
# Array: rename the single output column
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).toDF("number").show()
+------+
|number|
+------+
| 1|
| 2|
| 3|
+------+
# Map: rename both output columns
spark.tvf.explode(
sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).toDF("letter", "pair").show()
+------+----+
|letter|pair|
+------+----+
| a| b|
| c| d|
+------+----+