Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Verzamelt de waarden van een kolom in een set, elimineert duplicaten en retourneert deze set objecten. Deze functie is niet-deterministisch omdat de volgorde van verzamelde resultaten afhankelijk is van de volgorde van de rijen, die mogelijk niet deterministisch zijn na willekeurige bewerkingen.
Syntaxis
from pyspark.sql import functions as sf
sf.collect_set(col)
Parameterwaarden
| Kenmerk | Typologie | Description |
|---|---|---|
col |
pyspark.sql.Column of kolomnaam |
De doelkolom waarop de functie wordt berekend. |
Retouren
pyspark.sql.Column: Een nieuw kolomobject dat een set verzamelde waarden vertegenwoordigt, dubbele waarden uitgesloten.
Voorbeelden
Voorbeeld 1: Waarden verzamelen uit een DataFrame en het resultaat sorteren in oplopende volgorde
from pyspark.sql import functions as sf
df = spark.createDataFrame([(1,), (2,), (2,)], ('value',))
df.select(sf.sort_array(sf.collect_set('value')).alias('sorted_set')).show()
+----------+
|sorted_set|
+----------+
| [1, 2]|
+----------+
Voorbeeld 2: Waarden verzamelen uit een DataFrame en het resultaat sorteren in aflopende volgorde
from pyspark.sql import functions as sf
df = spark.createDataFrame([(2,), (5,), (5,)], ('age',))
df.select(sf.sort_array(sf.collect_set('age'), asc=False).alias('sorted_set')).show()
+----------+
|sorted_set|
+----------+
| [5, 2]|
+----------+
Voorbeeld 3: Waarden verzamelen uit een DataFrame met meerdere kolommen en het resultaat sorteren
from pyspark.sql import functions as sf
df = spark.createDataFrame([(1, "John"), (2, "John"), (3, "Ana")], ("id", "name"))
df = df.groupBy("name").agg(sf.sort_array(sf.collect_set('id')).alias('sorted_set'))
df.orderBy(sf.desc("name")).show()
+----+----------+
|name|sorted_set|
+----+----------+
|John| [1, 2]|
| Ana| [3]|
+----+----------+