Pular para o conteúdo principal

TableValuedFunction.posexplode_outer

Retorna um DataFrame contendo uma nova linha para cada elemento com a posição especificada na matriz ou mapa fornecido. Ao contrário do posexplode, se o array/mapa for nulo ou vazio, a linha (nulo, nulo) é produzida. Usa o nome de coluna default pos para posição e col para elementos na matriz e key e value para elementos no mapa, a menos que especificado de outra forma.

Sintaxe

Python
spark.tvf.posexplode_outer(collection)

Parâmetros

Parâmetro

Tipo

Descrição

collection

pyspark.sql.Column

coluna de destino para trabalhar.

Devoluções

pyspark.sql.DataFrameUm DataFrame com uma nova linha para cada elemento, juntamente com sua posição, ou valores nulos se a coleção estiver vazia ou for nula.

Exemplos

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