Teilen über


Glätten

Erstellt ein einzelnes Array aus einem Array von Arrays. Wenn eine Struktur geschachtelter Arrays tiefer als zwei Ebenen ist, wird nur eine Schachtelungsebene entfernt.

Syntax

from pyspark.sql import functions as sf

sf.flatten(col)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Der Name der Spalte oder des Ausdrucks, die abgeflacht werden soll.

Rückkehr

pyspark.sql.Column: Eine neue Spalte, die das flache Array enthält.

Examples

Beispiel 1: Flachung eines einfachen geschachtelten Arrays

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

Beispiel 2: Flachen eines Arrays mit Nullwerten

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

Beispiel 3: Abgrenzen eines Arrays mit mehr als zwei Schachtelungsebenen

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

Beispiel 4: Flachen eines Arrays mit gemischten Typen

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