Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Agrégation et Regroupement en Python | Travail Avec les Données
Fondamentaux de Databricks : Guide du Débutant

Agrégation et Regroupement en Python

Glissez pour afficher le menu

Note
Définition

L'agrégation est le processus qui consiste à résumer plusieurs lignes de données en une seule valeur significative, telle qu'une somme, une moyenne ou un nombre. Le regroupement permet d'appliquer ces résumés à des catégories spécifiques, comme le calcul du total des ventes pour chaque région distincte.

Il est rare d'avoir besoin d'examiner des millions de lignes de données brutes individuellement. En général, l'intérêt porte sur la vue d'ensemble : totaux, moyennes ou dénombrements par catégorie. Dans Spark, cela s'obtient en combinant deux méthodes puissantes : groupBy() et agg().

Le modèle de base groupBy

Pour résumer des données par catégorie spécifique, il faut d'abord utiliser la méthode groupBy(). Cela indique à Spark de rassembler toutes les lignes partageant la même valeur (comme "cut" dans la table diamonds) dans un groupe. Cependant, le regroupement seul n'a pas d'effet ; il doit être suivi d'une agrégation.

# Group by cut and count how many rows are in each
count_df = df.groupBy("cut").count()

display(count_df)

Effectuer des calculs avec sum(), avg(), et max()

Une fois que les données sont groupées, il est possible d'appliquer des fonctions mathématiques aux colonnes numériques. Pour afficher le profit total par type d'article, utiliser .sum().

# Total total_depth per cut category
total_depth = df.groupBy("cut").sum("x")

display(total_depth)

Remarquez que Spark renomme automatiquement la colonne en sum(x). Dans le prochain chapitre, nous apprendrons comment rendre ces noms plus professionnels.

La méthode agg() pour plusieurs métriques

Si vous devez calculer plusieurs éléments en même temps—par exemple, à la fois le bénéfice moyen et le revenu maximum pour chaque région—utilisez la méthode .agg() (aggregate). Il s'agit de la norme professionnelle pour construire des synthèses complexes.

from pyspark.sql import functions as F

# Calculate multiple metrics at once
summary_df = df.groupBy("cut").agg(
    F.sum("x"),
    F.avg("y"),
    F.max("z")
)

display(summary_df)
Note
Remarque

Nous importons pyspark.sql.functions as F pour accéder à ces puissants outils mathématiques.

Regroupement par plusieurs colonnes

Il n'est pas nécessaire de se limiter à un seul critère de regroupement. Il est possible de passer une liste de colonnes pour obtenir des données à un niveau plus granulaire, comme le total de x pour chaque Color Type au sein de chaque Cut.

multi_group_df = df.groupBy("cut", "color").sum("x")

display(multi_group_df)

Tri des résultats

Les données agrégées sont souvent plus lisibles lorsqu'elles sont triées. Vous pouvez chaîner la méthode .orderBy() à la fin de votre agrégation pour afficher vos catégories les plus performantes en haut de la liste.

# Show highest profit categories first
sorted_df = summary_df.orderBy("sum(x)", ascending=False)

display(sorted_df)

1. Quelle méthode devez-vous appeler AVANT d'appliquer un sum() ou un avg() si vous souhaitez que les résultats soient ventilés par catégorie ?

2. Quel est l'avantage d'utiliser la méthode .agg() au lieu de simplement .sum() ?

question mark

Quelle méthode devez-vous appeler AVANT d'appliquer un sum() ou un avg() si vous souhaitez que les résultats soient ventilés par catégorie ?

Sélectionnez la réponse correcte

question mark

Quel est l'avantage d'utiliser la méthode .agg() au lieu de simplement .sum() ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 6

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 4. Chapitre 6
some-alt