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.

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