Course Code: pysprkub
Duration: 21 hours
Prerequisites:
Účastníci by měli mít:
- Praktické zkušenosti s programováním v jazyce Python, včetně funkcí, modulů a základních konceptů objektově orientovaného programování.
- Základní až středně pokročilé zkušenosti s prací s Pandas a workflowmi pro zpracování tabulkových dat.
- Znalost základů PySpark a Spark DataFrames, včetně čtení dat, transformací, akcí, spojování (joins) a agregací.
- Obecné pochopení SQL a konceptů zpracování dat, včetně filtrování,分组ování a spojování datasetů.
- Základní obeznámenost s koncepty Docker a Kubernetes, jako jsou kontejnery, obrazky a pods. Zkušenosti s administrací Kubernetes nejsou požadovány.
- Základní znalost běžných formátů dat, jako jsou CSV, JSON a Parquet.
Účastníci nemusí být administrátory Kubernetes ani specialisty na infrastrukturu. Kurz se zaměřuje na to, aby inženýři dat, vývojáři a data scientisti porozuměli a optimalizovali své úlohy Spark běžící v Kubernetes z pohledu aplikace a konfigurace.
Cílová skupina
Tento kurz je navržen pro profesionály, kteří vyvíjejí, udržují nebo optimalizují úlohy pro zpracování dat a strojové učení pomocí Pythonu a Sparku v cloudových nebo kontejnerizovaných prostředí.
Zvláště je vhodný pro:
- Inženýry dat (Data Engineers) pracující s PySpark, distribuovaným zpracováním dat a ETL pipeline.
- Data Scientisty zpracovávající velké sady dat nebo provozující úlohy strojového učení s Sparkem, Pandas nebo Polars.
- Vývojáři Pythonu (Python Developers) pracující s datově náročnými aplikacemi a hledající způsoby, jak zlepšit efektivitu paměti a výkon zpracování.
- Inženýry strojového učení (Machine Learning Engineers) spravující úlohy přípravy dat a trénování modelů na sdílených prostředích Kubernetes nebo cloud.
- Analytics Engineers pracující s velkými datasety a hledající způsoby, jak zlepšit efektivitu zpracování dat.
- Inženýry DevOps, Platform a Cloud, kteří podporují úlohy Spark v Kubernetes a potřebují porozumět tomu, jak konfigurace na úrovni aplikace ovlivňuje využití zdrojů a výkon.
- Tech Leady a Architekty řešení (Solution Architects) zapojené do návrhu nebo optimalizace moderních platforem pro zpracování dat.
Overview:
Tento třídní praktický kurz se zaměřuje na vytváření a optimalizaci efektivních úloh pro zpracování dat pomocí PySpark, Pandas a Polars v prostředí založeném na Kubernetes.
Účastníci získají praktické pochopení toho, jak se aplikace Spark spouštějí v Kubernetes a jak rozhodnutí o konfiguraci na úrovni aplikace ovlivňují výkon, škálovatelnost, spotřebu zdrojů a náklady. Kurz pokrývá klíčové oblasti optimalizace, včetně dimensionování executorů, alokace paměti, dynamické alokace, strategií rozdělování (partitioning), chování shuffle, problémů s malými soubory a efektivního zpracování formátu Parquet.
Kurz též řeší běžné výzvy při práci s Pandas, včetně omezení paměti a chyb přetečení paměti (out-of-memory), a představuje Polars jako výkonnou alternativu pro vybrané úlohy zpracování dat. Prostřednictvím praktických cvičení budou účastníci diagnostikovat problémy s výkonem a pamětí, porovnávat různé strategie konfigurace a aplikovat techniky optimalizace na realističné scénáře ETL a strojového učení.
Důraz je po celý kurz kladen na praktické rozhodování: pochopení toho, jak identifikovat láhlová hrdla, vybrat vhodný nástroj, efektivně nakonfigurovat Spark a najít rovnováhu mezi výkonem a spotřebou zdrojů infrastruktury a náklady.
Course Outline:
Modul 1: Základy Big Data a Sparku
- Přehled ekosystému Big Data a role Sparku v moderních datových platformách
- Pochopení architektury Sparku: driver, executory, cluster manager, lenivé vyhodnocování (lazy evaluation), DAG a plánování spuštění
- Rozdíl mezi rozhraním RDD a DataFrame a kdy použít každý přístup
- Vytvoření a konfigurace SparkSession a pochopení základů konfigurace aplikace
Modul 2: PySpark DataFrames
- Čtení a zápis dat ze zdrojů a formátů enterprise: CSV, JSON, Parquet a Delta
- Práce s PySpark DataFrames: transformace, akce, výrazy sloupců, filtrování, spojení a agregace
- Implementace pokročilých operací, jako jsou okenní funkce, zpracování časových razítek a práce s vnořenými daty
- Aplikace kontrol kvality dat a psaní opakovaně použitelného a udržovatelného kódu PySpark
Modul 3: Základy Kubernetes a Docker pro uživatele Sparku
- Pochopení vztahu mezi obrazkami Docker a pods Kubernetes a procesy Spark driver a executor – koncepční pohled pro uživatele clusteru, nikoli pro administrátory
- Pochopení toho, co se děje, když se úloha Spark spouští v Kubernetes: plánování pods, požadavky a limity zdrojů a jak se nastavení relace mapuje na tyto zdroje
- Pochopení toho, co ovládáte prostřednictvím parametrů Spark session a co ovládá tým platformy prostřednictvím provisioningu clusteru – a proč je tato hranice důležitá pro ladění
- Praktické cvičení: Zkontrolujte běžící úlohu Spark-on-Kubernetes v pískovišti (sandbox cluster) a identifikujte pods driver a executor
Modul 4: Konfigurace Spark Session v Kubernetes – Podrobně
- Pochopení počtu executorů versus velikosti executoru: kompromisy mezi pamětí a jádry a jak o nich uvažovat
- Alokace paměti pro driver a executory, přepych paměti (memory overhead) a jak se tyto hodnoty překládají na zdroje pods
- Dynamická alokace: jak funguje v Kubernetes, kdy ušetří zdroje a kdy ne
- Praktické cvičení: Spusťte stejnou úlohu za různých konfigurací executorů a jader a porovnejte čas spuštění a využití zdrojů
Modul 5: Chování škálování a optimalizace nákladů
- Pochopení toho, jak přidávání nebo odebírání uzlů mění chování úlohy, čas dokončení a spotřebu zdrojů
- Porovnání mnoha malých executorů versus menšího počtu velkých: kompromisy mezi výkonem a náklady
- Chování shuffle a ladění shuffle partition, včetně odhadu dopadu konfigurace na náklady
- Praktické cvičení: Zvětšete sandbox cluster z pěti na deset uzlů a sledujte vliv na čas dokončení úlohy a spotřebu zdrojů
Modul 6: Efektivní ingest a rozdělování dat
- Pochopení problému malých souborů: proč zdroje rozdělené do mnoha malých souborů Parquet (1–5 MB) zhoršují výkon a zkreslují rozdělení (partitioning)
- Strategie repartitioning a coalescing
- Kontrola velikosti partition při čtení a zápisu
- Efektivní zápis Parquet, aby se předešlo znovuvzniknutí problému malých souborů downstream
- Praktické cvičení: Načtěte dataset složený z mnoha malých partition Parquet, aplikujte různé strategie repartitioning a porovnejte výkon před a po optimalizaci
Modul 7: Správa paměti v Pandas a diagnostika chyb
- Pochopení příčin chyb přetečení paměti v Pandas a rozpoznání jejich příznaků
- Aplikace vzorců pro úspornou konverzi paměti mezi Spark a Pandas
- Prevence přetečení paměti při zápisu velkých datasetů do CSV
- Použití zpracování po kusech (chunked processing) a optimalizace dtype pro omezená prostředí
- Praktické cvičení: Reprodukujte typickou situaci přetečení paměti v Pandas a vyřešte ji pomocí chunking a optimalizace dtype
Modul 8: Polars jako doplňkový nástroj
- Pozicování Polars oproti Pandas: vlastnosti výkonu, lenivé vyhodnocování a chování paměti
- Pochopení toho, kde se Polars hodí vedle PySpark a Pandas v moderních cloudových datových stackech a migracích roadmapách, včetně prostředí AWS
- Praktické cvičení: Přepišete transformaci intenzivně využitou v Pandas do Polars a porovnejte využití paměti a rychlost zpracování
Modul 9: Aplikace optimalizace na úlohy ETL a ML
- Aplikace principů konfigurace, rozdělování a správy paměti napříč realističnou ETL pipeline
- Pochopení zvážení optimalizace specifických pro úlohy strojového učení běžící na stejném clusteru
- Aplikace praktického workflow pro ladění k systematické diagnostice problémů s náklady a výkonem
- Praktické cvičení: Doplňte end-to-end mini-projekt kombinující načítání dat, transformace a jednoduchý krok trénování modelu, přičemž účastníci sami ladí konfiguraci Spark
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