Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Un conjunto de métodos para agregaciones en un dataframe, creado por DataFrame.groupBy.
Admite Spark Connect
Sintaxis
DataFrame.groupBy(*cols)
Methods
| Método | Descripción |
|---|---|
agg(*exprs) |
Calcula agregados y devuelve el resultado como dataframe. Acepta un nombre de columna de asignación de diccionarios para agregar nombres de función o una lista de expresiones de columna agregadas. |
avg(*cols) |
Calcula los valores promedio de cada columna numérica para cada grupo.
mean es un alias. |
count() |
Cuenta el número de registros de cada grupo. |
max(*cols) |
Calcula el valor máximo de cada columna numérica para cada grupo. |
mean(*cols) |
Calcula los valores promedio de cada columna numérica para cada grupo.
avg es un alias. |
min(*cols) |
Calcula el valor mínimo de cada columna numérica para cada grupo. |
pivot(pivot_col, values) |
Dinamiza una columna del dataframe actual y realiza la agregación especificada. |
sum(*cols) |
Calcula la suma de cada columna numérica para cada grupo. |
Ejemplos
df = spark.createDataFrame(
[(2, "Alice"), (3, "Alice"), (5, "Bob"), (10, "Bob")], ["age", "name"])
df.groupBy("name").count().sort("name").show()
+-----+-----+
| name|count|
+-----+-----+
|Alice| 2|
| Bob| 2|
+-----+-----+
from pyspark.sql import functions as sf
df.groupBy("name").agg(sf.min("age")).sort("name").show()
+-----+--------+
| name|min(age)|
+-----+--------+
|Alice| 2|
| Bob| 5|
+-----+--------+
df.groupBy("name").avg("age").sort("name").show()
+-----+--------+
| name|avg(age)|
+-----+--------+
|Alice| 2.5|
| Bob| 7.5|
+-----+--------+
from pyspark.sql import Row
df1 = spark.createDataFrame([
Row(course="dotNET", year=2012, earnings=10000),
Row(course="Java", year=2012, earnings=20000),
Row(course="dotNET", year=2013, earnings=48000),
Row(course="Java", year=2013, earnings=30000),
])
df1.groupBy("year").pivot("course", ["dotNET", "Java"]).sum("earnings").sort("year").show()
+----+------+-----+
|year|dotNET| Java|
+----+------+-----+
|2012| 10000|20000|
|2013| 48000|30000|
+----+------+-----+