TableValuedFunction.inline
Décompose un tableau de structs en une table.
Cette fonction prend une colonne d'entrée contenant un tableau de structures et renvoie une nouvelle colonne où chaque structure du tableau est éclatée en une ligne distincte.
Syntaxe
Python
spark.tvf.inline(input)
parameter
parameter | Type | Description |
|---|---|---|
|
| Colonne d'entrée de valeurs à éclater. |
Renvoie
pyspark.sql.DataFrame: Un DataFrame avec des lignes struct explosées.
Exemples
Exemple 1 : Utilisation en ligne avec un tableau de structures unique
Python
import pyspark.sql.functions as sf
spark.tvf.inline(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))
)).show()
Output
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+
Exemple 2 : Utilisation en ligne avec une colonne de tableau de struct vide
Python
import pyspark.sql.functions as sf
spark.tvf.inline(sf.array().astype("array<struct<a:int,b:int>>")).show()
Output
+---+---+
| a| b|
+---+---+
+---+---+
Exemple 3 : Utilisation en ligne avec une colonne de tableau de struct contenant des valeurs nulles
Python
import pyspark.sql.functions as sf
spark.tvf.inline(sf.array(
sf.named_struct(sf.lit("a"), sf.lit(1), sf.lit("b"), sf.lit(2)),
sf.lit(None),
sf.named_struct(sf.lit("a"), sf.lit(3), sf.lit("b"), sf.lit(4))
)).show()
Output
+----+----+
| a| b|
+----+----+
| 1| 2|
|NULL|NULL|
| 3| 4|
+----+----+