Cursusaanbod
Module 1: Fundamenten van Big Data & Spark
- Overzicht van het Big Data-ecosysteem en de rol van Spark in moderne data-platforms
- Inzicht in de architectuur van Spark: driver, executors, cluster manager, lazy evaluation, DAG en uitvoeringsplanning
- Verschillen tussen RDD- en DataFrame-API's en wanneer elke aanpak te gebruiken
- Aanmaken en configureren van een SparkSession en fundamentele begrippen van toepassingsconfiguratie begrijpen
Module 2: PySpark DataFrames
- Data inlezen en schrijven vanuit bedrijfsbronnen en formaten: CSV, JSON, Parquet en Delta
- Werken met PySpark DataFrames: transformaties, acties, kolomexpressies, filtreren, joins en aggregaties
- Implementeren van geavanceerde operaties zoals window functions, afhandelen van timestamps en werken met geneste data
- Toegeven van datakwaliteitscontroles en het schrijven van herbruikbare, onderhoudbare PySpark-code
Module 3: Basis van Kubernetes & Docker voor Spark-gebruikers
- Snappen hoe Docker-images en Kubernetes-pods samenhangen met Spark driver- en executor-processen — een conceptueel overzicht voor clustergebruikers, niet beheerders
- Inzicht krijgen in wat er gebeurt wanneer een Spark-job op Kubernetes draait: pod-planning, bronverzoeken en limieten, en hoe sessie-instellingen hierop worden afgebeeld
- Begrip van wat u controleert via Spark-sessieparameters versus wat het platformteam beheert via clusterprovisie — en waarom deze grens van belang is voor tuning
- Praktische oefening: Onderzoek een draaiende Spark-on-Kubernetes-job in de sandbox-cluster en identificeer de driver- en executor-pods
Module 4: Spark-sessieconfiguratie op Kubernetes — Diepte-inzicht
- Executor-aantal versus executorgrootte: afwegingen tussen geheugen en cores en hoe hierover na te denken
- Geheugentoewijzing voor driver en executor, geheugenoverhead, en hoe deze zich vertalen tot pod-bronnen
- Dynamische toewijzing: hoe dit op Kubernetes werkt, wanneer het bronnen bespaart en wanneer niet
- Praktische oefening: Voer dezelfde job uit met verschillende executor- en core-configuraties en vergelijk de runtime en het bronverbruik
Module 5: Schaalgedrag & Kostenoptimalisatie
- Inzicht in hoe toevoegen of verwijderen van nodes het gedrag, de voltooiingstijd en het bronverbruik van een job verandert
- Veel kleine executors vergelijken met minder grote: prestatie- en kostenafwegingen
- Shuffle-gedrag en tuning van shuffle-partities, inclusief schatting van de kostenvolgen van keuzes in de configuratie
- Praktische oefening: Schaal de sandbox-cluster op van vijf naar tien nodes en observeer het effect op de job-voltooiingstijd en het bronverbruik
Module 6: Efficiënte Data-inname & Partitionering
- Inzicht in het kleine-bestandenprobleem: waarom bronnen die verspreid zijn over veel kleine (1–5 MB) Parquet-bestanden de prestaties verlagen en de partitionering vervormen
- Strategieën voor repartitioneren en coalescen
- Partitiesgrootte beheren bij het inlezen en schrijven
- Parquet efficiënt schrijven om het kleine-bestandenprobleem downstream te vermijden
- Praktische oefening: Laad een dataset op die bestaat uit veel kleine Parquet-partities, pas verschillende repartitioneringsstrategieën toe en vergelijk de prestaties vóór en ná optimalisatie
Module 7: Geheugenbeheer & Foutdiagnose in Pandas
- De onderliggende oorzaken van out-of-memory-fouten in Pandas begrijpen en de symptomen herkennen
- Geheugenefficiënte conversiemodellen toepassen tussen Spark en Pandas
- Geheugenexplosies vermijden bij het schrijven van grote datasets naar CSV
- Chunkverwerking en dtype-optimalisatie gebruiken in beperkte omgevingen
- Praktische oefening: Reproduceer een typische Pandas-out-of-memory-situatie en los deze op met chunking en dtype-optimalisatie
Module 8: Polars als aanvullend tool
- Polars positioneren ten opzichte van Pandas: prestatiekenmerken, lazy evaluation en gedrag van het geheugen
- Begrijpen waar Polars past naast PySpark en Pandas in moderne cloud-datastacks en migratiepaden, inclusief AWS-omgevingen
- Praktische oefening: Herschrijf een Pandas-intensieve transformatie in Polars en vergelijk het geheugengebruik en de verwerkingssnelheid
Module 9: Toepassing van optimalisatie op ETL- & ML-workloads
- Configuratie-, partitionerings- en geheugenbeheerprincipes toepassen op een realistische ETL-pipeline
- Optimalisatieoverwegingen begrijpen die specifiek zijn voor machinelearning-workloads die op dezelfde cluster draaien
- Een praktische tuning-workflow toepassen om kosten- en prestatieproblemen systematisch te diagnosticeren
- Praktische oefening: Voltooi een end-to-end miniproject dat data-inlezen, transformatie en een eenvoudige modeltrainingsstap combineert, waarbij deelnemers de Spark-configuratie zelf tunen
Vereisten
Deelnemers moeten beschikken over:
- Praktische ervaring met Python-programmeren, waaronder functies, modules en basisobjectgerichte concepten.
- Basis- tot intermediaire ervaring met het werken aan Pandas en workflows voor tabulaire dataverwerking.
- Basiskennis van PySpark en Spark DataFrames, waaronder het inlezen van data, transformaties, acties, joins en aggregaties.
- Een algemene begrip van SQL en dataverwerkingsconcepten, waaronder filtreren, groeperen en joinen van datasets.
- Basiskennis van Docker- en Kubernetes-concepten, zoals containers, images en pods. Er is geen ervaring met Kubernetes-beheer vereist.
- Basisbegrip van veelvoorkomende dataformaten zoals CSV, JSON en Parquet.
Deelnemers hoeven geen Kubernetes-beheerders of infrastructuurspecialisten te zijn. De cursus richt zich op hoe data-engineers, ontwikkelaars en data-wetenschappers hun Spark-workloads die op Kubernetes draaien, vanuit het perspectief van toepassing en configuratie kunnen begrijpen en optimaliseren.
Doeleindgroep
Deze cursus is ontworpen voor professionals die dataverwerkings- en machinelearning-workloads ontwikkelen, onderhouden of optimaliseren met Python en Spark in cloud- of gecontaineriseerde omgevingen.
Hij is met name geschikt voor:
- Data-Engineers die werken met PySpark, gedistribueerde dataverwerking en ETL-pipelines.
- Data-Wetenschappers die grote datasets verwerken of machinelearning-workloads draaien met Spark, Pandas of Polars.
- Python-Ontwikkelaars die werken aan data-intensieve toepassingen en streven naar betere geheugenefficiëntie en verwerkingsprestaties.
- Machine Learning Engineers die data-voorbereiding en modeltrainingsworkloads beheren op gedeelde Kubernetes- of cloudomgevingen.
- Analyse Engineers die werken met grote datasets en streven naar verbeterde dataverwerkingsefficiëntie.
- DevOps-, Platform- en Cloud Engineers die Spark-workloads op Kubernetes ondersteunen en moeten begrijpen hoe configuratie op toepassingsniveau het bronverbruik en de prestaties beïnvloedt.
- Technische Leiders en Solution Architects die betrokken zijn bij het ontwerpen of optimaliseren van moderne dataverwerkingsplatforms.
Getuigenissen (1)
Ik vond het fijn dat het praktisch was. Ik hield ervan om de theoretische kennis toe te passen met praktijkvoorbeelden.
Aurelia-Adriana - Allianz Services Romania
Cursus - Python and Spark for Big Data (PySpark)
Automatisch vertaald