Schulungsübersicht
Modul 1: Grundlagen von Big Data & Spark
- Überblick über das Big-Data-Ökosystem und die Rolle von Spark in modernen Datenplattformen
- Verständnis der Spark-Architektur: Driver, Executors, Cluster-Manager, Lazy Evaluation, DAG und Ausführungsplanung
- Unterschiede zwischen den RDD- und DataFrame-APIs und wann jeder Ansatz geeignet ist
- Erstellung und Konfiguration von SparkSession sowie Grundlagen der Anwendungskonfiguration
Modul 2: PySpark DataFrames
- Lesen und Schreiben von Daten aus Unternehmensquellen und Formaten: CSV, JSON, Parquet und Delta
- Arbeit mit PySpark DataFrames: Transformationen, Aktionen, Spaltenausdrücke, Filterung, Joins und Aggregationen
- Implementierung fortgeschrittener Operationen wie Fensterfunktionen, Verarbeitung von Zeitstempeln und Arbeit mit verschachtelten Daten
- Anwendung von Qualitätsprüfungen und Schreiben von wiederverwendbarem, wartbarem PySpark-Code
Modul 3: Kubernetes- und Docker-Grundlagen für Spark-Nutzer
- Verständnis des Zusammenhangs zwischen Docker-Images, Kubernetes-Pods und Spark-Prozessen (Driver und Executors) – eine konzeptionelle Sicht für Cluster-Nutzer, nicht für Administratoren
- Verständnis der Abläufe bei der Ausführung einer Spark-Job auf Kubernetes: Pod-Scheduling, Ressourcenanforderungen und -limits sowie die Abbildung der Session-Einstellungen darauf
- Unterscheidung zwischen dem, was über Spark-Session-Parameter gesteuert wird, und dem, was das Plattform-Team über die Cluster-Versorgung kontrolliert – und warum diese Grenze für das Tuning wichtig ist
- Praktische Übung: Untersuchung eines laufenden Spark-on-Kubernetes-Jobs im Sandbox-Cluster und Identifikation der Driver- und Executor-Pods
Modul 4: Spark-Session-Konfiguration auf Kubernetes – Im Detail
- Verständnis der Abwägung zwischen der Anzahl der Executors und ihrer Größe: Kompromisse zwischen Speicher und Cores und deren Bewertung
- Speicherallokation für Driver und Executors, Speicher-Overhead und wie sich diese in Pod-Ressourcen übersetzen
- Dynamische Allokation: Verhalten auf Kubernetes, wann sie Ressourcen spart und wann nicht
- Praktische Übung: Ausführung desselben Jobs mit verschiedenen Executor- und Core-Konfigurationen und Vergleich der Laufzeit und des Ressourceneinsatzes
Modul 5: Skalierungsverhalten & Kostenoptimierung
- Verständnis, wie das Hinzufügen oder Entfernen von Nodes das Job-Verhalten, die Fertigstellungszeit und den Ressourcenverbrauch beeinflusst
- Vergleich vieler kleiner Executors im Verhältnis zu wenigen großen: Kompromisse zwischen Leistung und Kosten
- Shuffle-Verhalten und Anpassung der Shuffle-Partitionen, einschließlich der Schätzung der Kostenauswirkung durch Konfigurationsentscheidungen
- Praktische Übung: Skalierung des Sandbox-Clusters von fünf auf zehn Nodes und Beobachtung der Auswirkung auf die Fertigstellungszeit und den Ressourcenverbrauch
Modul 6: Effiziente Dateneingabe & Partitionierung
- Verständnis des Kleindateien-Problems: Warum Quellen, die in viele Parquet-Dateien von 1–5 MB aufgeteilt sind, die Leistung verschlechtern und die Partitionierung verzerren
- Strategien zum Repartitionieren und Zusammenfassen (Coalescing)
- Steuerung der Partitionsgröße beim Lesen und Schreiben
- Effizientes Schreiben von Parquet-Dateien, um die Entstehung des Kleindateien-Problems in nachgelagerten Prozessen zu vermeiden
- Praktische Übung: Laden eines Datensatzes aus vielen kleinen Parquet-Partitionen, Anwendung verschiedener Repartitionierungsstrategien und Leistungsvergleich vor und nach der Optimierung
Modul 7: Speichermanagement & Fehlersuche in Pandas
- Verständnis der Hauptursachen von Out-of-Memory-Fehlern in Pandas und Erkennung der Symptome
- Anwendung von speichereffizienten Umwandlungsmustern zwischen Spark und Pandas
- Vermeidung von Speicherüberlastung beim Schreiben großer Datensätze in CSV-Dateien
- Einsatz von Chunk-Verarbeitung und dtyp-Optimierung in ressourcenbegrenzten Umgebungen
- Praktische Übung: Reproduzierung eines typischen Pandas-Out-of-Memory-Szenarios und Lösung durch Chunking und dtyp-Optimierung
Modul 8: Polars als ergänzendes Werkzeug
- Positionierung von Polars im Verhältnis zu Pandas: Leistungsmerkmale, Lazy Evaluation und Speicherverhalten
- Verständnis dafür, wo Polars neben PySpark und Pandas in modernen Cloud-Datenstacks und Migrationsstrategien eingesetzt wird, einschließlich AWS-Umgebungen
- Praktische Übung: Umwandlung einer Pandas-lastigen Transformation in Polars und Vergleich von Speichernutzung und Verarbeitungsgeschwindigkeit
Modul 9: Optimierung auf ETL- & ML-Workloads anwenden
- Anwendung von Prinzipien der Konfiguration, Partitionierung und Speicherverwaltung in einer realistischen ETL-Pipeline
- Verständnis von Optimierungserwägungen, die spezifisch für Machine-Learning-Workloads auf demselben Cluster sind
- Anwendung eines praxisnahen Tuning-Workflows zur systematischen Diagnose von Kosten- und Leistungsproblemen
- Praktische Übung: Abschluss eines End-to-End-Mini-Projekts, das Datenladen, Transformation und einen einfachen Schritt des Modelltrainings kombiniert, wobei die Teilnehmer die Spark-Konfiguration selbst optimieren
Voraussetzungen
Die Teilnehmer sollten über Folgendes verfügen:
- Praxiserfahrung in der Python-Programmierung, einschließlich Funktionen, Module und grundlegende konzeptionelle Objektorientierung.
- Grundlegende bis mittlere Erfahrung in der Arbeit mit Pandas und tabellarischen Datenverarbeitungs-Workflows.
- Grundlegende Vertrautheit mit PySpark und Spark DataFrames, einschließlich Datenlesen, Transformationen, Aktionen, Joins und Aggregationen.
- Ein allgemeines Verständnis von SQL und Datenverarbeitungskonzepten, einschließlich Filterung, Gruppierung und Verbindung von Datensätzen.
- Grundlegende Vertrautheit mit Docker- und Kubernetes-Konzepten, wie Containern, Bildern und Pods. Es ist keine Erfahrung als Kubernetes-Administrator erforderlich.
- Grundlegendes Verständnis gängiger Dateiformate wie CSV, JSON und Parquet.
Die Teilnehmer müssen nicht Kubernetes-Administratoren oder Infrastruktur-Spezialisten sein. Der Kurs richtet sich daran, wie Dateningenieure, Entwickler und Data Scientists ihre auf Kubernetes laufenden Spark-Workloads aus Sicht von Anwendung und Konfiguration verstehen und optimieren können.
Zielgruppe
Dieser Kurs ist für Fachkräfte konzipiert, die Datenverarbeitungs- und Machine-Learning-Workloads mit Python und Spark in Cloud- oder containerisierten Umgebungen entwickeln, pflegen oder optimieren.
Er ist besonders geeignet für:
- Dateningenieure, die mit PySpark, verteilten Datenverarbeitung und ETL-Pipelines arbeiten.
- Data Scientists, die große Datensätze verarbeiten oder Machine-Learning-Workloads mit Spark, Pandas oder Polars ausführen.
- Python-Entwickler, die datenintensive Anwendungen betreiben und die Speichereffizienz sowie die Verarbeitungsgeschwindigkeit verbessern möchten.
- Machine-Learning-Ingenieure, die Datenpräparation und Modelltraining-Workloads in geteilten Kubernetes- oder Cloud-Umgebungen verwalten.
- Analyse-Ingenieure, die mit großen Datensätzen arbeiten und die Effizienz der Datenverarbeitung steigern wollen.
- DevOps-, Plattform- und Cloud-Ingenieure, die Spark-Workloads auf Kubernetes unterstützen und verstehen müssen, wie die Anwendungskonfiguration den Ressourceneinsatz und die Leistung beeinflusst.
- Technische Leads und Lösungsarchitekten, die an der Gestaltung oder Optimierung moderner Datenverarbeitungsplattformen beteiligt sind.
Erfahrungsberichte (1)
Ich mochte es, dass es praktisch war. Ich liebte es, die theoretischen Kenntnisse mit praktischen Beispielen anzuwenden.
Aurelia-Adriana - Allianz Services Romania
Kurs - Python and Spark for Big Data (PySpark)
Maschinelle Übersetzung