Samenvatting
PySpark windowfuncties voegen groepsberekeningen toe zonder transactierijen samen te voegen tot één resultaat.
PySpark windowfuncties houden rijen intact
PySpark maakt onderscheid tussen een gewone `groupBy()` en windowfuncties. `groupBy()` reduceert een verzameling rijen tot één rij per groep. Dat werkt goed voor totalen, maar verwijdert de afzonderlijke transactiedetails uit het resultaat.
Windowfuncties berekenen waarden over gerelateerde rijen terwijl elke oorspronkelijke rij behouden blijft. Daardoor kun je naast een transactie ook informatie tonen over de groep waartoe die transactie behoort. Denk aan een rang binnen een winkel, een oplopend totaal of het verschil met de vorige verkoop.
Het artikel gebruikt een kleine verkoopdataset met drie winkels, productregels en verkoopdatums in 2026. De voorbeelden behandelen rangschikkingen binnen groepen, running totals, vergelijkingen met eerdere rijen, het aandeel van een rij in het groepstotaal en het selecteren van de hoogste records.
Waarom PySpark windowfuncties tellen
Voor BI-professionals lossen windowfuncties een herkenbaar rapportageprobleem op: aggregatie en detail hoeven niet langer in aparte bewerkingen of datasets te staan. Een verkoopregel kan bijvoorbeeld tegelijk het winkeltotaal, de positie binnen de winkel en de verandering ten opzichte van de vorige verkoop bevatten.
De aanpak draait om het definiëren van een window met een groep en een volgorde. De groepsindeling bepaalt welke rijen bij elkaar horen; de sortering bepaalt hoe functies zoals rangschikking, cumulatieve som en vorige- of volgende-waarde werken. Die expliciete keuze voorkomt dat een berekening op de verkeerde records wordt toegepast.
De techniek blijft niet beperkt tot verkoopdata. Het artikel noemt ook eventlogs, financiële records, klantactiviteiten en sensormetingen. Dezelfde structuur past dus bij tijdreeksen en andere gegevens waarbij de volgorde van rijen betekenis heeft.
Concrete takeaway voor PySpark windowfuncties
Oefen eerst met `partitionBy()` en `orderBy()` op een kleine dataset en controleer daarna per rij welke records in de window vallen. Gebruik `groupBy()` voor compacte groepsuitkomsten; kies windowfuncties wanneer je aggregatie naast het oorspronkelijke detail nodig hebt. Je kunt de voorbeelden lokaal uitvoeren met PySpark, `uv` en een Spark-sessie met `local[*]`; een cluster is daarvoor niet nodig.
Verdiep je kennis
Predictive Analytics — Wat kan het voor jouw bedrijf?
Ontdek wat predictive analytics is, hoe het werkt en hoe je het inzet voor je bedrijf. Van de 4 niveaus van analytics to...
KennisbankAI in Power BI — Copilot, Smart Narratives en meer
Ontdek alle AI-functies in Power BI: van Copilot en Smart Narratives tot anomaliedetectie en Q&A. Compleet overzicht met...
KennisbankChatGPT en BI — Hoe AI je data-analyse verandert
Ontdek hoe ChatGPT en generatieve AI de wereld van business intelligence veranderen. Van SQL en DAX genereren tot data-a...