Compartir vía


Aplanar

Crea una sola matriz a partir de una matriz de matrices. Si una estructura de matrices anidadas es más profunda que dos niveles, solo se quita un nivel de anidamiento.

Syntax

from pyspark.sql import functions as sf

sf.flatten(col)

Parámetros

Parámetro Tipo Description
col pyspark.sql.Column o str Nombre de la columna o expresión que se va a aplanar.

Devoluciones

pyspark.sql.Column: una nueva columna que contiene la matriz plana.

Examples

Ejemplo 1: aplanamiento de una matriz anidada simple

from pyspark.sql import functions as sf
df = spark.createDataFrame([([[1, 2, 3], [4, 5], [6]],)], ['data'])
df.select(sf.flatten(df.data)).show()
+------------------+
|     flatten(data)|
+------------------+
|[1, 2, 3, 4, 5, 6]|
+------------------+

Ejemplo 2: aplanamiento de una matriz con valores NULL

from pyspark.sql import functions as sf
df = spark.createDataFrame([([None, [4, 5]],)], ['data'])
df.select(sf.flatten(df.data)).show()
+-------------+
|flatten(data)|
+-------------+
|         NULL|
+-------------+

Ejemplo 3: Acoplamiento de una matriz con más de dos niveles de anidamiento

from pyspark.sql import functions as sf
df = spark.createDataFrame([([[[1, 2], [3, 4]], [[5, 6], [7, 8]]],)], ['data'])
df.select(sf.flatten(df.data)).show(truncate=False)
+--------------------------------+
|flatten(data)                   |
+--------------------------------+
|[[1, 2], [3, 4], [5, 6], [7, 8]]|
+--------------------------------+

Ejemplo 4: aplanamiento de una matriz con tipos mixtos

from pyspark.sql import functions as sf
df = spark.createDataFrame([([['a', 'b', 'c'], [1, 2, 3]],)], ['data'])
df.select(sf.flatten(df.data)).show()
+------------------+
|     flatten(data)|
+------------------+
|[a, b, c, 1, 2, 3]|
+------------------+