Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Aggregatie en Groepering in Python | Werken met Gegevens
Databricks Fundamentals: Een Beginnersgids

Aggregatie en Groepering in Python

Veeg om het menu te tonen

Note
Definitie

Aggregatie is het proces waarbij meerdere rijen gegevens worden samengevat tot één betekenisvolle waarde, zoals een som, gemiddelde of aantal. Groeperen maakt het mogelijk om deze samenvattingen toe te passen op specifieke categorieën, zoals het bepalen van de totale verkoop per afzonderlijke regio.

Zelden is het nodig om miljoenen individuele rijen ruwe data te bekijken. Meestal wil je het "grote geheel" weten – totalen, gemiddelden of aantallen per categorie. In Spark kun je dit bereiken door twee krachtige methoden te combineren: groupBy() en agg().

Het basispatroon van groupBy

Om gegevens samen te vatten per specifieke categorie, gebruik je eerst de groupBy()-methode. Hiermee geef je aan dat Spark alle rijen met dezelfde waarde (zoals "cut" in de diamonds-tabel) in een groep verzamelt. Groeperen op zichzelf doet echter niets; je moet het opvolgen met een aggregatie.

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

display(count_df)

Wiskundige bewerkingen uitvoeren met sum(), avg() en max()

Na het groeperen van de gegevens kunnen wiskundige functies worden toegepast op numerieke kolommen. Om de totale winst per itemtype te bekijken, wordt .sum() gebruikt.

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

display(total_depth)

Merk op dat Spark de kolom automatisch hernoemt naar sum(x). In het volgende hoofdstuk leren we hoe we deze namen professioneler kunnen maken.

De agg()-methode voor meerdere statistieken

Wanneer het nodig is om meerdere berekeningen tegelijk uit te voeren—bijvoorbeeld zowel de gemiddelde winst als de maximale omzet per regio—gebruik je de .agg() (aggregate) methode. Dit is de professionele standaard voor het opstellen van complexe samenvattingen.

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
Opmerking

We importeren pyspark.sql.functions as F om toegang te krijgen tot deze krachtige wiskundige hulpmiddelen.

Groeperen op meerdere kolommen

Het is niet beperkt tot groeperen op slechts één categorie. Je kunt een lijst van kolommen doorgeven om gegevens op een gedetailleerder niveau te bekijken, zoals het totaal x voor elke Color Type binnen elke Cut.

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

display(multi_group_df)

Resultaten sorteren

Geaggregeerde gegevens zijn vaak beter leesbaar wanneer ze gesorteerd zijn. Je kunt de methode .orderBy() aan het einde van je aggregatie toevoegen om de best presterende categorieën bovenaan de lijst te tonen.

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

display(sorted_df)

1. Welke methode moet je AANROEPEN VOORDAT je een sum() of avg() toepast als je de resultaten per categorie wilt uitsplitsen?

2. Wat is het voordeel van het gebruik van de .agg()-methode in plaats van alleen .sum()?

question mark

Welke methode moet je AANROEPEN VOORDAT je een sum() of avg() toepast als je de resultaten per categorie wilt uitsplitsen?

Selecteer het correcte antwoord

question mark

Wat is het voordeel van het gebruik van de .agg()-methode in plaats van alleen .sum()?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 4. Hoofdstuk 6
some-alt