collect_list

Shromažďuje hodnoty ze sloupce do seznamu, udržuje duplicity a vrací tento seznam objektů. Funkce není deterministická, protože pořadí shromážděných výsledků závisí na pořadí řádků, které se po operacích náhodného prohazování pravděpodobně stanou ne deterministickými.

Syntaxe

from pyspark.sql import functions as sf

sf.collect_list(col)

Parametry

Parameter Typ Description
col pyspark.sql.Column nebo název sloupce Cílový sloupec, na kterém se funkce vypočítá.

Návraty

pyspark.sql.Column: Nový objekt Column představující seznam shromážděných hodnot s duplicitními hodnotami.

Examples

Příklad 1: Shromážděte hodnoty z datového rámce a seřaďte výsledek vzestupně.

from pyspark.sql import functions as sf
df = spark.createDataFrame([(1,), (2,), (2,)], ('value',))
df.select(sf.sort_array(sf.collect_list('value')).alias('sorted_list')).show()
+-----------+
|sorted_list|
+-----------+
|  [1, 2, 2]|
+-----------+

Příklad 2: Shromažďování hodnot z datového rámce a řazení výsledku v sestupném pořadí

from pyspark.sql import functions as sf
df = spark.createDataFrame([(2,), (5,), (5,)], ('age',))
df.select(sf.sort_array(sf.collect_list('age'), asc=False).alias('sorted_list')).show()
+-----------+
|sorted_list|
+-----------+
|  [5, 5, 2]|
+-----------+

Příklad 3: Shromažďování hodnot z datového rámce s více sloupci a seřazení výsledku

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_list('id')).alias('sorted_list'))
df.orderBy(sf.desc("name")).show()
+----+-----------+
|name|sorted_list|
+----+-----------+
|John|     [1, 2]|
| Ana|        [3]|
+----+-----------+