Kontakt aufnehmen

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.
 21 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (1)

Kommende Kurse

Verwandte Kategorien