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, Executoren, Cluster Manager, Lazy Evaluation, DAG und Ausführungsplanung
- Unterschiede zwischen den RDD- und DataFrame-APIs und wann welcher Ansatz verwendet wird
- Anlegen und Konfigurieren von SparkSession und Verständnis der Grundlagen der Anwendungskonfiguration
Modul 2: PySpark DataFrames
- Lesen und Schreiben von Daten aus Enterprise-Quellen und -Formaten: CSV, JSON, Parquet und Delta
- Arbeit mit PySpark DataFrames: Transformationen, Aktionen, Spaltenausdrücke, Filterung, Joins und Aggregationen
- Implementierung fortgeschrittener Operationen wie Window-Funktionen, Behandlung von Zeitstempeln und Arbeit mit verschachtelten Daten
- Umsetzung von Datenqualitätsprüfungen und Schreiben von wiederverwendbarem, wartbarem PySpark-Code
Modul 3: Kubernetes- & Docker-Grundlagen für Spark-Nutzer
- Verständnis des Zusammenhangs zwischen Docker-Images und Kubernetes-Pods sowie Spark-Driver- und Executor-Prozessen – eine konzeptionelle Sichtweise für Cluster-Nutzer, nicht für Administratoren
- Verständnis dessen, was passiert, wenn ein Spark-Job auf Kubernetes läuft: Pod-Scheduling, Ressourcenanforderungen und -limits sowie die Abbildung von Sitzungseinstellungen darauf
- Verständnis dessen, was Sie über Spark-Sitzungsparameter steuern, im Gegensatz zu dem, was das Platform-Team über die Cluster-Vorrichtung steuert – und warum diese Grenze für das Tuning wichtig ist
- Praktische Übung: Überprüfung eines laufenden Spark-on-Kubernetes-Jobs im Sandbox-Cluster und Identifizierung der Driver- und Executor-Pods
Modul 3: Konfiguration der Spark-Sitzung auf Kubernetes – Im Detail
- Verständnis der Unterscheidung zwischen Anzahl und Größe von Executoren: Kompromisse zwischen Speicher und Kernen und wie man darüber nachdenkt
- Speicherallokierung für Driver und Executoren, Speicher-Overhead und wie sich diese in Pod-Ressourcen übertragen
- Dynamische Allokierung: Wie sie auf Kubernetes funktioniert, wann sie Ressourcen spart und wann nicht
- Praktische Übung: Ausführung desselben Jobs unter verschiedenen Executor- und Kernkonfigurationen und Vergleich der Laufzeit und des Ressourceneinsatzes
Modul 5: Skalierungsverhalten & Kostenoptimierung
- Verständnis dafür, wie das Hinzufügen oder Entfernen von Nodes das Verhalten des Jobs, die Abschlusszeit und den Ressourcenverbrauch ändert
- Vergleich vieler kleiner Executoren mit wenigen großen: Kompromisse zwischen Performance und Kosten
- Shuffle-Verhalten und Tuning von Shuffle-Partitionen, einschließlich der Schätzung der Kostenauswirkung von Konfigurationsentscheidungen
- Praktische Übung: Skalierung des Sandbox-Clusters von fünf auf zehn Nodes und Beobachtung der Auswirkungen auf die Job-Abschlusszeit und den Ressourcenverbrauch
Modul 6: Effiziente Datenübernahme & Partitionierung
- Verständnis des Problems kleiner Dateien: Warum Quellen, die über viele Parquet-Dateien von 1–5 MB verteilt sind, die Performance beeinträchtigen und die Partitionierung verzerren
- Strategien zur Re-Partitionierung und Koaleszenz
- Steuerung der Partitiongrößen beim Lesen und Schreiben
- Effizientes Schreiben von Parquet, um das Problem kleiner Dateien nachgelagert zu vermeiden
- Praktische Übung: Laden eines Datensatzes, der aus vielen kleinen Parquet-Partitionen besteht, Anwendung verschiedener Re-Partitionierungsstrategien und Vergleich der Performance vor und nach der Optimierung
Modul 7: Speicherverwaltung & Fehlerdiagnose in Pandas
- Verständnis der Ursachen für Out-of-memory-Fehler in Pandas und Erkennung der Symptome
- Anwendung speichereffizienter Konversionsmuster zwischen Spark und Pandas
- Vermeidung von Speicheraufblähung beim Schreiben großer Datensätze nach CSV
- Einsatz von Chunking und dtype-Optimierung in ressourcenbeschränkten Umgebungen
- Praktische Übung: Reproduktion eines typischen Pandas-Out-of-memory-Szenarios und Behebung mittels Chunking und dtype-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-Daten-Stacks und Migrationsroadmaps seinen Platz findet, einschließlich AWS-Umgebungen
- Praktische Übung: Umschreiben einer Pandas-lastigen Transformation in Polars und Vergleich der Speichernutzung und der Verarbeitungsgeschwindigkeit
Modul 9: Anwendung der Optimierung auf ETL- & ML-Workloads
- Anwendung von Konfigurations-, Partitionierungs- und Speicherverwaltungsprinzipien in einer realistischen ETL-Pipeline
- Verständnis von Optimierungserwägungen, die spezifisch für Machine-Learning-Workloads auf demselben Cluster sind
- Anwendung eines praktischen Tuning-Workflows zur systematischen Diagnose von Kosten- und Leistungsproblemen
- Praktische Übung: Abschluss eines End-to-End-Mini-Projekts, das Datenladen, Transformation und einen einfachen Modelltrainingsschritt kombiniert, wobei die Teilnehmer die Spark-Konfiguration selbst tunen
Voraussetzungen
Die Teilnehmer sollten über folgendes verfügen:
- Praktische Erfahrung in Python-Programmierung, einschließlich Funktionen, Module und grundlegende objektorientierte Konzepte.
- Grundlegende bis mittlere Erfahrung in der Arbeit mit Pandas und tabellarischen Datenverarbeitungs-Workflows.
- Grundlegende Vertrautheit mit PySpark und Spark DataFrames, einschließlich des Lesens von Daten, Transformationen, Aktionen, Joins und Aggregationen.
- Ein allgemeines Verständnis von SQL- und Datenverarbeitungskonzepten, einschließlich Filterung, Gruppierung und Verknüpfung von Datensätzen.
- Grundlegende Vertrautheit mit Docker- und Kubernetes-Konzepten, wie Containern, Images und Pods. Keine Erfahrung in der Kubernetes-Administration ist erforderlich.
- Grundlegendes Verständnis gängiger Datenformate wie CSV, JSON und Parquet.
Die Teilnehmer müssen keine Kubernetes-Administratoren oder Infrastrukturspezialisten sein. Der Kurs konzentriert sich darauf, wie Data Engineers, Entwickler und Data Scientists ihre auf Kubernetes laufenden Spark-Workloads aus Sicht der Anwendung und Konfiguration verstehen und optimieren können.
Zielgruppe
Dieser Kurs richtet sich an Fachkräfte, die Datenverarbeitungs- und Machine-Learning-Workloads mit Python und Spark in Cloud- oder containerbasierten Umgebungen entwickeln, pflegen oder optimieren.
Er ist besonders geeignet für:
- Data Engineers, 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-Entwicklern, die an datenintensiven Anwendungen arbeiten und die Speichereffizienz und Verarbeitungsperformance verbessern möchten.
- Machine-Learning-Engineers, die Datenbereitstellungs- und Modelltraining-Workloads in geteilten Kubernetes- oder Cloud-Umgebungen verwalten.
- Analytics Engineers, die mit großen Datensätzen arbeiten und die Effizienz der Datenverarbeitung steigern möchten.
- DevOps-, Plattform- und Cloud-Engineers, die Spark-Workloads auf Kubernetes unterstützen und verstehen müssen, wie anwendungsspezifische Konfigurationen den Ressourceneinsatz und die Performance beeinflussen.
- Technischen Leitern 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