Course Code: pysprkub
Duration: 21 hours

Prerequisites:

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.

Overview:

Dieser dreitägige praxisorientierte Kurs konzentriert sich auf den Aufbau und die Optimierung effizienter Datenverarbeitungs-Workloads unter Einsatz von PySpark, Pandas und Polars in Kubernetes-basierten Umgebungen.

Die Teilnehmer entwickeln ein praxisnahes Verständnis dafür, wie Spark-Anwendungen auf Kubernetes ausgeführt werden und wie konfigurationsbezogene Entscheidungen auf Anwendungsebene Leistung, Skalierbarkeit, Ressourcenverbrauch und Kosten beeinflussen. Der Kurs behandelt wichtige Optimierungsbereiche wie die Dimensionierung der Executors, die Speicherverwaltung, dynamische Allokation, Partitionierungsstrategien, Shuffle-Verhalten, das Problem der Kleindateien und die effiziente Verarbeitung von Parquet-Dateien.

Außerdem werden häufige Herausforderungen bei der Arbeit mit Pandas angesprochen, insbesondere Speicherbeschränkungen und Abstürze aufgrund von Speichermangel (Out-of-Memory-Fehler). Dabei wird Polars als hochperformante Alternative für bestimmte Datenverarbeitungs-Workloads eingeführt. In praktischen Übungen diagnostizieren die Teilnehmer Leistungs- und Speicherprobleme, vergleichen verschiedene Konfigurationsstrategien und wenden Optimierungstechniken auf realistische ETL- und Machine-Learning-Szenarien an.

Im Mittelpunkt des Kurses steht die praktische Entscheidungsfindung: Es geht darum, Engpässe zu identifizieren, das passende Werkzeug auszuwählen, Spark effizient zu konfigurieren sowie Leistung, Ressourcenverbrauch der Infrastruktur und Kosten in ein ausgewogenes Verhältnis zu bringen.

Course Outline:

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

Sites Published:

United Arab Emirates - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Qatar - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Egypt - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Saudi Arabia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Africa - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Brasil - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

Canada - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

中国 - 基于Kubernetes使用PySpark、Pandas和Polars实现高效数据处理

香港 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

澳門 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

台灣 - 使用PySpark、Pandas和Polars在Kubernetes上進行高效資料處理

USA - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Österreich - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Schweiz - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Deutschland - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Czech Republic - Efektivní zpracování dat v Kubernetes pomocí PySpark, Pandas a Polars

Denmark - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Estonia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Finland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Greece - Αποτελεσματική Επεξεργασία Δεδομένων σε Kubernetes με PySpark, Pandas & Polars

Magyarország - Hatékony adatfeldolgozás Kubernetesben PySpark, Pandas és Polars segítségével

Ireland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Luxembourg - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Latvia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

España - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Italia - Elaborazione dati efficiente su Kubernetes con PySpark, Pandas e Polars

Lithuania - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nederland - Efficiënte verwerking van data op Kubernetes met PySpark, Pandas & Polars

Norway - Effektiv databehandling på Kubernetes med PySpark, Pandas og Polars

Portugal - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

România - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Sverige - Effektiv datahantering med PySpark, Pandas och Polars på Kubernetes

Türkiye - Kubernetes Ortamında PySpark, Pandas ve Polars ile Verimli Veri İşleme

Malta - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Belgique - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

France - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

日本 - KubernetesにおけるPySpark、Pandas、Polarsによる効率的なデータ処理

Australia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Malaysia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

New Zealand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Philippines - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Singapore - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Thailand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Vietnam - Xử lý dữ liệu hiệu quả trên Kubernetes bằng PySpark, Pandas & Polars

India - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Argentina - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Chile - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Costa Rica - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Ecuador - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Guatemala - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Colombia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

México - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Panama - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Peru - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Uruguay - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Venezuela - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Polska - Skuteczne przetwarzanie danych w Kubernetesie z wykorzystaniem PySpark, Pandas i Polars

United Kingdom - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Korea - PySpark, Pandas 및 Polars를 활용한 Kubernetes에서 효율적인 데이터 처리

Pakistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Sri Lanka - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bulgaria - Ефективна обработка на данни в Kubernetes с PySpark, Pandas и Polars

Bolivia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Indonesia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kazakhstan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Moldova - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Morocco - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Tunisia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kuwait - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Oman - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovakia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kenya - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nigeria - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Botswana - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovenia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Croatia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Serbia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bhutan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nepal - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Uzbekistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

US Government - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars