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.
Para obtener la función SQL de Databricks correspondiente, consulte reduce function.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.reduce(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 cero. |
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: Reducció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.reduce("values", dbf.lit(0.0), lambda acc, x: acc + x).alias("sum")).show()
+----+
| sum|
+----+
|42.0|
+----+
Ejemplo 2: Reducción con 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.reduce(
"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|
+----+