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.
Aplica un operador binario a un estado inicial y a todos los elementos de la matriz y lo reduce a un único estado. El estado final se convierte en el resultado final aplicando una función finish. Soporta Spark Connect.
Para obtener la función SQL de Databricks correspondiente, consulte aggregate function.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.aggregate(col=<col>, initialValue=<initialValue>, merge=<merge>, finish=<finish>)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
col |
pyspark.sql.Column o str |
Nombre de columna o expresión. |
initialValue |
pyspark.sql.Column o str |
Valor inicial. Nombre de columna o expresión. |
merge |
function |
Función binaria que devuelve la expresión del mismo tipo que initialValue. |
finish |
functionopcional |
Función unaria opcional que se usa para convertir el valor acumulado. |
Devoluciones
pyspark.sql.Column: valor final después de aplicar la función de agregado.
Examples
Ejemplo 1: agregación simple con suma
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [20.0, 4.0, 2.0, 6.0, 10.0])], ("id", "values"))
df.select(dbf.aggregate("values", dbf.lit(0.0), lambda acc, x: acc + x).alias("sum")).show()
+----+
| sum|
+----+
|42.0|
+----+
Ejemplo 2: Agregación con la función finish
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [20.0, 4.0, 2.0, 6.0, 10.0])], ("id", "values"))
def merge(acc, x):
count = acc.count + 1
sum = acc.sum + x
return dbf.struct(count.alias("count"), sum.alias("sum"))
df.select(
dbf.aggregate(
"values",
dbf.struct(dbf.lit(0).alias("count"), dbf.lit(0.0).alias("sum")),
merge,
lambda acc: acc.sum / acc.count,
).alias("mean")
).show()
+----+
|mean|
+----+
| 8.4|
+----+