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