Aller au contenu principal

TableValuedFunction.posexplode_outer

Renvoie un DataFrame contenant une nouvelle ligne pour chaque élément avec position dans le tableau ou la carte donné. Contrairement à posexplode, si le tableau/la carte est null ou vide, alors la ligne (null, null) est produite. Utilise le nom de colonne default pos pour la position, et col pour les éléments du tableau et key et value pour les éléments de la carte, sauf indication contraire.

Syntaxe

Python
spark.tvf.posexplode_outer(collection)

parameter

parameter

Type

Description

collection

pyspark.sql.Column

Colonne cible sur laquelle travailler.

parameter

Type

Description

collection

pyspark.sql.Column

Colonne cible sur laquelle travailler.

Renvoie

pyspark.sql.DataFrame: un DataFrame avec une nouvelle ligne pour chaque élément ainsi que sa position, ou des valeurs nulles si la collection est vide ou nulle.

Exemples

Python
import pyspark.sql.functions as sf
spark.tvf.posexplode_outer(sf.array(sf.lit("foo"), sf.lit("bar"))).show()
Output
+---+---+
|pos|col|
+---+---+
| 0|foo|
| 1|bar|
+---+---+
Python
import pyspark.sql.functions as sf
spark.tvf.posexplode_outer(sf.array()).show()
Output
+----+----+
| pos| col|
+----+----+
|NULL|NULL|
+----+----+
Python
import pyspark.sql.functions as sf
spark.tvf.posexplode_outer(sf.create_map(sf.lit("x"), sf.lit(1.0))).show()
Output
+---+---+-----+
|pos|key|value|
+---+---+-----+
| 0| x| 1.0|
+---+---+-----+
Python
import pyspark.sql.functions as sf
spark.tvf.posexplode_outer(sf.create_map()).show()
Output
+----+----+-----+
| pos| key|value|
+----+----+-----+
|NULL|NULL| NULL|
+----+----+-----+