Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Devuelve un DataFrame que contiene una nueva fila para cada elemento de la matriz o mapa especificados. El nombre de columna predeterminado es col para los elementos de una matriz y key para value los elementos de un mapa. Para usar nombres de columna diferentes, llame a toDF() en el dataframe devuelto.
Syntax
spark.tvf.explode(collection)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
collection |
pyspark.sql.Column |
Columna de destino en la que trabajar. |
Devoluciones
pyspark.sql.DataFrame: DataFrame con una nueva fila para cada elemento.
Examples
Ejemplo 1: Exploding an array column
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|
+---+
Ejemplo 2: Exploding a map column
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|
+---+-----+
Ejemplo 3: Exploding an array of struct column
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|
+---+---+
Ejemplo 4: Exploding an empty array column
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
+---+
|col|
+---+
+---+
Ejemplo 5: Exploding an empty map column
import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
+---+-----+
|key|value|
+---+-----+
+---+-----+
Ejemplo 6: Invalidación de los nombres de columna predeterminados
Dado que spark.tvf.explode devuelve un dataframe, use toDF() para cambiar el nombre de las columnas de salida.
.alias() no tiene ningún efecto en las columnas explotadas.
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|
+------+----+