Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Retorna um DataFrame que contém uma nova linha para cada elemento na matriz ou mapa fornecido. O nome da coluna padrão é col para elementos em uma matriz e key para value elementos em um mapa. Para usar nomes de coluna diferentes, chame toDF() o DataFrame retornado.
Sintaxe
spark.tvf.explode(collection)
Parâmetros
| Parâmetro | Tipo | Description |
|---|---|---|
collection |
pyspark.sql.Column |
Coluna de destino na qual trabalhar. |
Devoluções
pyspark.sql.DataFrame: Um DataFrame com uma nova linha para cada elemento.
Exemplos
Exemplo 1: Explodindo uma coluna de matriz
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).show()
+---+
|col|
+---+
| 1|
| 2|
| 3|
+---+
Exemplo 2: Explodindo uma coluna de mapa
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()
+---+-----+
|key|value|
+---+-----+
| a| b|
| c| d|
+---+-----+
Exemplo 3: Explodindo uma matriz de coluna struct
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()
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+
Exemplo 4: Explodindo uma coluna de matriz vazia
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
+---+
|col|
+---+
+---+
Exemplo 5: Explodindo uma coluna de mapa vazia
import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
+---+-----+
|key|value|
+---+-----+
+---+-----+
Exemplo 6: Substituindo os nomes de coluna padrão
Como spark.tvf.explode retorna um DataFrame, use toDF() para renomear as colunas de saída.
.alias() não tem efeito sobre as colunas explodidas.
import pyspark.sql.functions as sf
# Array: rename the single output column
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).toDF("number").show()
+------+
|number|
+------+
| 1|
| 2|
| 3|
+------+
# Map: rename both output columns
spark.tvf.explode(
sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).toDF("letter", "pair").show()
+------+----+
|letter|pair|
+------+----+
| a| b|
| c| d|
+------+----+