Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengumpulkan nilai dari kolom ke dalam satu set, menghilangkan duplikat, dan mengembalikan kumpulan objek ini. Fungsi ini tidak deterministik karena urutan hasil yang dikumpulkan tergantung pada urutan baris, yang mungkin tidak deterministik setelah operasi acak.
Syntax
from pyspark.sql import functions as sf
sf.collect_set(col)
Parameter-parameternya
| Pengaturan | Tipe | Description |
|---|---|---|
col |
pyspark.sql.Column atau nama kolom |
Kolom target tempat fungsi dihitung. |
Pengembalian Barang
pyspark.sql.Column: Objek Kolom baru yang mewakili sekumpulan nilai yang dikumpulkan, duplikat dikecualikan.
Examples
Contoh 1: Kumpulkan nilai dari DataFrame dan urutkan hasilnya dalam urutan naik
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]|
+----------+
Contoh 2: Mengumpulkan nilai dari DataFrame dan mengurutkan hasilnya dalam urutan menurun
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]|
+----------+
Contoh 3: Mengumpulkan nilai dari DataFrame dengan beberapa kolom dan mengurutkan hasilnya
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]|
+----+----------+