Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Recopila los valores de una columna en un conjunto, eliminando duplicados y devuelve este conjunto de objetos. Esta función no es determinista, ya que el orden de los resultados recopilados depende del orden de las filas, que puede ser no determinista después de cualquier operación aleatoria.
Syntax
from pyspark.sql import functions as sf
sf.collect_set(col)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
col |
pyspark.sql.Column o nombre de columna |
Columna de destino en la que se calcula la función. |
Devoluciones
pyspark.sql.Column: nuevo objeto Column que representa un conjunto de valores recopilados, duplicados excluidos.
Examples
Ejemplo 1: Recopilar valores de un dataframe y ordenar el resultado en orden ascendente
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]|
+----------+
Ejemplo 2: Recopilar valores de un dataframe y ordenar el resultado en orden descendente
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]|
+----------+
Ejemplo 3: Recopilar valores de un dataframe con varias columnas y ordenar el resultado
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]|
+----+----------+