Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
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|
+------+----+