TableValuedFunction.posexplode_outer

Vrátí datový rámec obsahující nový řádek pro každý prvek s pozicí v daném poli nebo mapě. Na rozdíl od posexplode je-li matice/mapa null nebo prázdná, vytvoří se řádek (null, null). Použije výchozí název pos sloupce pro umístění a col pro prvky v poli a keyvalue pro prvky v mapě, pokud není uvedeno jinak.

Syntaxe

spark.tvf.posexplode_outer(collection)

Parametry

Parameter Typ Description
collection pyspark.sql.Column Cílový sloupec, na který chcete pracovat.

Návraty

pyspark.sql.DataFrame: Datový rámec s novým řádkem pro každý prvek spolu s jeho umístěním nebo hodnotami null, pokud je kolekce prázdná nebo null.

Examples

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