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