Pular para o conteúdo principal

TableValuedFunction.explode

Retorna um DataFrame contendo uma nova linha para cada elemento na matriz ou mapa fornecido. Usa o nome de coluna default col para elementos na matriz e key e value para elementos no mapa, a menos que especificado de outra forma.

Sintaxe

Python
spark.tvf.explode(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.

Exemplos

Exemplo 1 : Explodindo uma coluna de matriz

Python
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).show()
Output
+---+
|col|
+---+
| 1|
| 2|
| 3|
+---+

Exemplo 2 : Explodindo uma coluna de mapa

Python
import pyspark.sql.functions as sf
spark.tvf.explode(
sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).show()
Output
+---+-----+
|key|value|
+---+-----+
| a| b|
| c| d|
+---+-----+

Exemplo 3 : Explodindo um array de colunas do tipo struct

Python
import pyspark.sql.functions as sf
spark.tvf.explode(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))
)).select("col.*").show()
Output
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+

Exemplo 4 : Explodindo uma coluna de matriz vazia

Python
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
Output
+---+
|col|
+---+
+---+

Exemplo 5 : Explodindo uma coluna vazia do mapa

Python
import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
Output
+---+-----+
|key|value|
+---+-----+
+---+-----+