Pular para o conteúdo principal

achatar

Cria um único array a partir de um array de arrays. Se uma estrutura de arrays aninhados tiver mais de dois níveis de profundidade, apenas um nível de aninhamento será removido.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.flatten(col)

Parâmetros

Parâmetro

Tipo

Descrição

col

pyspark.sql.Column ou str

O nome da coluna ou expressão a ser achatada.

Devoluções

pyspark.sql.ColumnUma nova coluna que contém a matriz achatada.

Exemplos

Exemplo 1 : Achatando um array aninhado simples

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

Exemplo 2 : Achatando uma matriz com valores nulos

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

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

Python
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)
Output
+--------------------------------+
|flatten(data) |
+--------------------------------+
|[[1, 2], [3, 4], [5, 6], [7, 8]]|
+--------------------------------+

Exemplo 4 : Aplanando uma matriz com tipos mistos

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