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