Kontakt aufnehmen
 Dauer 21 Stunden

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.

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (1)

Kommende Kurse

Verwandte Kategorien