Aller au contenu principal

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

input

pyspark.sql.Column

Colonne d'entrée de valeurs à éclater.

parameter

Type

Description

input

pyspark.sql.Column

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|
+----+----+