Freigeben über


array_agg

Gibt eine Liste von Objekten mit Duplikaten zurück.

Syntax

from pyspark.sql import functions as sf

sf.array_agg(col)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder Spaltenname Zielspalte, für die berechnet werden soll.

Rückkehr

pyspark.sql.Column: Liste der Objekte mit Duplikaten.

Examples

Beispiel 1: Verwenden array_agg Funktion in einer Int-Spalte

from pyspark.sql import functions as sf
df = spark.createDataFrame([[1],[1],[2]], ["c"])
df.agg(sf.sort_array(sf.array_agg('c')).alias('sorted_list')).show()
+-----------+
|sorted_list|
+-----------+
|  [1, 1, 2]|
+-----------+

Beispiel 2: Verwenden array_agg Funktion in einer Zeichenfolgenspalte

from pyspark.sql import functions as sf
df = spark.createDataFrame([["apple"],["apple"],["banana"]], ["c"])
df.agg(sf.sort_array(sf.array_agg('c')).alias('sorted_list')).show(truncate=False)
+----------------------+
|sorted_list           |
+----------------------+
|[apple, apple, banana]|
+----------------------+

Beispiel 3: Verwenden array_agg Funktion für eine Spalte mit Nullwerten

from pyspark.sql import functions as sf
df = spark.createDataFrame([[1],[None],[2]], ["c"])
df.agg(sf.sort_array(sf.array_agg('c')).alias('sorted_list')).show()
+-----------+
|sorted_list|
+-----------+
|     [1, 2]|
+-----------+

Beispiel 4: Verwenden array_agg Funktion in einer Spalte mit unterschiedlichen Datentypen

from pyspark.sql import functions as sf
df = spark.createDataFrame([[1],["apple"],[2]], ["c"])
df.agg(sf.sort_array(sf.array_agg('c')).alias('sorted_list')).show()
+-------------+
|  sorted_list|
+-------------+
|[1, 2, apple]|
+-------------+