agregar
Aplica um operador binário a um estado inicial e a todos os elementos da matriz, reduzindo-os a um único estado. O estado final é convertido no resultado final através da aplicação de uma função de finalização. Compatível com Spark Connect.
Para a função Databricks SQL correspondente, consulte a funçãoaggregate.
Sintaxe
from pyspark.databricks.sql import functions as dbf
dbf.aggregate(col=<col>, initialValue=<initialValue>, merge=<merge>, finish=<finish>)
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
|
| Nome da coluna ou expressão. |
|
| Valor inicial. Nome da coluna ou expressão. |
|
| Uma função binária que retorna uma expressão do mesmo tipo que initialValue. |
|
| Uma função unária opcional usada para converter o valor acumulado. |
Devoluções
pyspark.sql.Column: valor final após a aplicação da função de agregação.
Exemplos
Exemplo 1 : Agregação simples com soma
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|
+----+
Exemplo 2 : Agregação com função de finalização
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|
+----+