Aller au contenu principal

aplatir

Crée un tableau unique à partir d'un tableau de tableaux. Si une structure de tableaux imbriqués est plus profonde que deux niveaux, seul un niveau d'imbrication est supprimé.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.flatten(col)

parameter

parameter

Type

Description

col

pyspark.sql.Column ou str

Le nom de la colonne ou de l'expression à aplatir.

parameter

Type

Description

col

pyspark.sql.Column ou str

Le nom de la colonne ou de l'expression à aplatir.

Renvoie

pyspark.sql.Column: Nouvelle colonne qui contient le tableau aplati.

Exemples

Exemple 1 : aplatissement d'un simple tableau imbriqué

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

Exemple 2 : Aplatissement d'un tableau avec des valeurs nulles

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

**Exemple 3** : Aplatissement d’un tableau avec plus de deux niveaux d’imbrication

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

**Exemple 4** : Aplatir un tableau avec des types mixtes

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