Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Aggregering og Gruppering i Python | Arbejde med Data
Databricks Grundlæggende: En Begyndervejledning

Aggregering og Gruppering i Python

Stryg for at vise menuen

Note
Definition

Aggregation er processen med at opsummere flere rækker af data til en enkelt meningsfuld værdi, såsom en sum, gennemsnit eller optælling. Gruppering gør det muligt at anvende disse opsummeringer på specifikke kategorier, for eksempel at finde det samlede salg for hver enkelt region.

Det er sjældent nødvendigt at gennemgå millioner af individuelle rækker med rå data. Normalt ønsker man at få det "store billede" – totaler, gennemsnit eller optællinger pr. kategori. I Spark kan dette opnås ved at kombinere to kraftfulde metoder: groupBy() og agg().

Det grundlæggende groupBy-mønster

For at opsummere data efter en bestemt kategori bruges først metoden groupBy(). Dette instruerer Spark i at samle alle rækker, der deler samme værdi (som "cut" i diamonds-tabellen), i en gruppe. Gruppering i sig selv gør dog ikke noget; det skal følges op med en aggregering.

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

display(count_df)

Udførelse af matematiske operationer med sum(), avg() og max()

Når dataene er grupperet, kan der anvendes matematiske funktioner på de numeriske kolonner. For at se den samlede profit pr. varetype anvendes .sum().

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

display(total_depth)

Bemærk, at Spark automatisk omdøber kolonnen til sum(x). I næste kapitel lærer vi, hvordan disse navne kan gøres mere professionelle.

Metoden agg() til flere målinger

Hvis du har behov for at beregne mere end én ting ad gangen—for eksempel både gennemsnitligt overskud og maksimalt omsætning for hver region—anvendes .agg() (aggregate) metoden. Dette er den professionelle standard til opbygning af komplekse sammenfatninger.

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
Bemærk

Vi importerer pyspark.sql.functions as F for at få adgang til disse kraftfulde matematiske værktøjer.

Gruppering efter flere kolonner

Det er ikke begrænset til kun at gruppere efter én kategori. Du kan angive en liste af kolonner for at se data på et mere detaljeret niveau, såsom den samlede x for hver Color Type inden for hver Cut.

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

display(multi_group_df)

Sortering af resultaterne

Aggregerede data er ofte nemmere at læse, når de er sorteret. Du kan kæde metoden .orderBy() til slutningen af din aggregering for at se dine bedst præsterende kategorier øverst på listen.

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

display(sorted_df)

1. Hvilken metode skal du kalde FØR du anvender en sum() eller avg() hvis du vil have resultaterne opdelt efter kategori?

2. Hvad er fordelen ved at bruge .agg()-metoden i stedet for kun .sum()?

question mark

Hvilken metode skal du kalde FØR du anvender en sum() eller avg() hvis du vil have resultaterne opdelt efter kategori?

Vælg det korrekte svar

question mark

Hvad er fordelen ved at bruge .agg()-metoden i stedet for kun .sum()?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 6
some-alt