Schulungsübersicht
Modul 1: Big Data & Spark Grundlagen
- Ü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 welcher Ansatz verwendet werden sollte
- 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
- Arbeiten mit PySpark DataFrames: Transformationen, Aktionen, Spaltenausdrücke, Filtern, Joins und Aggregationen
- Implementierung fortgeschrittener Operationen wie Fensterfunktionen, Behandlung von Zeitstempeln und Arbeiten mit verschachtelten Daten
- Anwendung von Datenqualitätsprüfungen und Schreiben von wiederverwendbarem, pflegeleichtem PySpark-Code
Modul 3: Kubernetes- und Docker-Grundlagen für Spark-Nutzer
- Verständnis, wie Docker-Images und Kubernetes-Pods mit Spark-Driver- und Executor-Prozessen zusammenhängen – eine konzeptionelle Sicht für Cluster-Nutzer, nicht für Administratoren
- Verständnis der Abläufe, wenn ein Spark-Job auf Kubernetes läuft: Pod-Scheduling, Ressourcenanforderungen und -grenzen sowie die Abbildung von Sitzungseinstellungen darauf
- Unterscheidung zwischen dem, was durch Spark-Sitzungsparameter gesteuert wird, und dem, was das Plattformteam über das Cluster-Provisioning kontrolliert – und warum diese Abgrenzung für die Tuning-Massnahmen wichtig ist
- Praxisübung: Untersuchen Sie einen laufenden Spark-on-Kubernetes-Job in der Sandbox-Cluster-Umgebung und identifizieren Sie die Driver- und Executor-Pods
Modul 4: Spark-Sitzungskonfiguration auf Kubernetes – Im Detail
- Verständnis von Executor-Anzahl versus Executor-Grösse: Trade-offs zwischen Speicher und Kernen und wie man darüber nachdenkt
- Speicherzuweisung für Driver und Executor, Speicher-Overhead und wie sich dies in Pod-Ressourcen übersetzt
- Dynamische Zuweisung: Verhalten auf Kubernetes, wann sie Ressourcen spart und wann nicht
- Praxisübung: Führen Sie denselben Job mit unterschiedlichen Executor- und Kern-Konfigurationen aus und vergleichen Sie Laufzeit und Ressourcennutzung
Modul 5: Skalierungsverhalten & Kostenoptimierung
- Verständnis, wie das Hinzufügen oder Entfernen von Knoten das Job-Verhalten, die Abschlusszeit und die Ressourcennutzung beeinflusst
- Vergleich vieler kleiner Executors versus weniger grosser: Leistungs- und Kosten-Trade-offs
- Shuffle-Verhalten und Tuning von Shuffle-Partitionen, einschliesslich der Schätzung der Kostenwirkung durch Konfigurationsentscheidungen
- Praxisübung: Skalieren Sie den Sandbox-Cluster von fünf auf zehn Knoten und beobachten Sie die Auswirkung auf die Job-Abschlusszeit und die Ressourcennutzung
Modul 6: Effiziente Dateneingabe & Partitionierung
- Verständnis des Problems kleiner Dateien: Warum Quellen, die in viele 1–5 MB grosse Parquet-Dateien aufgeteilt sind, die Leistung verschlechtern und die Partitionierung verzerren
- Strategien zum Repartitionieren und Zusammenfassen (Coalescing)
- Steuerung der Partitionsgrösse beim Lesen und Schreiben
- Effizientes Schreiben von Parquet, um das Problem kleiner Dateien in nachgelagerten Prozessen zu vermeiden
- Praxisübung: Laden Sie einen Datensatz aus vielen kleinen Parquet-Partitionen, wenden Sie verschiedene Repartitionierungsstrategien an und vergleichen Sie die Leistung vor und nach der Optimierung
Modul 7: Pandas Speicherverwaltung & Fehlersuche
- Verständnis der Hauptursachen von Out-of-Memory-Fehlern in Pandas und Erkennung der Symptome
- Anwendung speichereffizienter Umwandlungsmuster zwischen Spark und Pandas
- Vermeidung von Speicherexplosionen beim Schreiben grosser Datensätze in CSV
- Verwendung von Chunked Processing und dtype-Optimierung für ressourcenbeschränkte Umgebungen
- Praxisübung: Reproduzieren Sie ein typisches Pandas Out-of-Memory-Szenario und lösen Sie es mittels Chunking und dtype-Optimierung
Modul 8: Polars als ergänzendes Werkzeug
- Positionierung von Polars im Vergleich zu Pandas: Leistungsfähigkeit, Lazy Evaluation und Speicherverhalten
- Verständnis, wo Polars neben PySpark und Pandas in modernen Cloud-Daten-Stacks und Migrationspfaden eingesetzt wird, einschliesslich AWS-Umgebungen
- Praxisübung: Schreiben Sie eine Pandas-lastige Transformation mit Polars neu und vergleichen Sie Speichernutzung und Verarbeitungsgeschwindigkeit
Modul 9: Anwendung der Optimierung auf ETL- & ML-Workloads
- Anwendung von Konfigurations-, Partitionierungs- und Speicherverwaltungsprinzipien in einer realistischen ETL-Pipeline
- Verständnis von Optimierungsaspekten, die spezifisch für Machine-Learning-Workloads sind, die auf demselben Cluster laufen
- Anwendung eines praktischen Tuning-Workflows zur systematischen Diagnose von Kosten- und Leistungsproblemen
- Praxisübung: Führen Sie ein End-to-End-Mini-Projekt aus, das Datenladen, Transformation und einen einfachen Modelltrainingsschritt kombiniert, wobei die Teilnehmer die Spark-Konfiguration selbst anpassen
Voraussetzungen
Die Teilnehmer sollten über folgende Voraussetzungen verfügen:
- Praktische Erfahrung in der Python-Programmierung, einschliesslich Funktionen, Module und grundlegender objektorientierter Konzepte.
- Grundlegende bis mittelschwere Erfahrung in der Arbeit mit Pandas und tabellarischen Datenverarbeitungs-Workflows.
- Grundlegende Vertrautheit mit PySpark und Spark DataFrames, einschliesslich Datenlesevorgängen, Transformationen, Aktionen, Joins und Aggregationen.
- Allgemeines Verständnis von SQL und Datenverarbeitungs-Konzepten, einschliesslich Filtern, Gruppieren und Verbinden von Datensätzen.
- Grundlegende Vertrautheit mit Konzepten von Docker und Kubernetes, wie Container, Images und Pods. Erfahrungen in der Kubernetes-Administration sind nicht erforderlich.
- Grundlegendes Verständnis gängiger Datenformate wie CSV, JSON und Parquet.
Die Teilnehmer müssen nicht Kubernetes-Administratoren oder Infrastruktur-Spezialisten 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 Container-Umgebungen entwickeln, warten oder optimieren.
Er ist besonders geeignet für:
- Data Engineers, die mit PySpark, verteilten Datenverarbeitung und ETL-Pipelines arbeiten.
- Data Scientists, die grosse Datensätze verarbeiten oder Machine-Learning-Workloads mit Spark, Pandas oder Polars ausführen.
- Python-Entwicklern, die an datenintensiven Anwendungen arbeiten und die Speichereffizienz sowie die Verarbeitungsgeschwindigkeit verbessern möchten.
- Machine Learning Engineers, die Datenbereitstellungs- und Modelltrainings-Workloads in geteilten Kubernetes- oder Cloud-Umgebungen verwalten.
- Analytics Engineers, die mit grossen Datensätzen arbeiten und die Effizienz der Datenverarbeitung verbessern möchten.
- DevOps-, Plattform- und Cloud-Engineers, die Spark-Workloads auf Kubernetes unterstützen und verstehen müssen, wie die Anwendungskonfiguration die Ressourcennutzung und Leistung beeinflusst.
- 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