Compartilhar via


mesclar

Cria uma única matriz a partir de uma matriz de matrizes. Se uma estrutura de matrizes aninhadas for mais profunda do que dois níveis, apenas um nível de aninhamento será removido.

Sintaxe

from pyspark.sql import functions as sf

sf.flatten(col)

Parâmetros

Parâmetro Tipo Description
col pyspark.sql.Column ou str O nome da coluna ou expressão a ser nivelada.

Devoluções

pyspark.sql.Column: uma nova coluna que contém a matriz nivelada.

Exemplos

Exemplo 1: Nivelando uma matriz aninhada simples

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]|
+------------------+

Exemplo 2: Mesclar uma matriz com valores nulos

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

Exemplo 3: nivelar uma matriz com mais de dois níveis de aninhamento

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]]|
+--------------------------------+

Exemplo 4: Mesclar uma matriz com tipos mistos

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]|
+------------------+