Kurzy a certifikace Open Source
Apache Spark - od jednoduchých transformací po vysoce výkonné joby
Cena (bez DPH)
Apache Spark je distribuovaný výpočetní engine, který poskytuje unifikovaný framework pro zpracování velkých objemů dat, interaktivní analýzu, machine learning, analýzu grafu a streaming. V průběhu posledních několika let se stává standardem pro zpracování těchto workloadů a to nejen v prostředí velkých dat. Jedním z důvodů proč roste popularita Sparku je také jeho programové API, neboli tzv. DataFramy, které nabízejí univerzální datovou abstrakci, již je možné použít ve všech výše zmíněných oblastech.
Toto školení pokrývá Spark ze třech různých perspektiv. První část je věnována programovému rozhraní DataFramového API PySparku, což umožní začít technologii velmi rychle používat ke psaní Sparkových aplikací a k interaktivní analýze dat v jazyce Python. V druhé části se zaměříme na architekturu Sparku, podíváme se na to, jak funguje DataFramové API i exekuční vrstva pod povrchem a ukážeme si, jak využít tuto znalost pro optimalizaci Sparkových aplikací. V poslední části se budeme zabývat možnostmi pokročilé analýzy dat, kterou Spark poskytuje skrze knihovny ML Pipelines a GraphFrames, ukážeme si, jak je možné analyzovat data z pohledu grafu a jak ve Sparku trénovat některé ML modely.
Možnosti financování
Cena za účastníka 5.642 Kč vč. DPH s podporou v programu JSEM V KURZU v rámci Národního plánu obnovy (registrace zde).
Cena za účastníka 31.339 Kč vč. DPH bez podpory (tj. 25.900 Kč bez DPH).
Cílová skupina
- Data scientisti, kteří se chtějí naučit ve Sparku analyzovat data a stavět ML prototypy, které budou škálovat s narůstajícím objemem analyzovaných dat
- Datoví inženýři, kteří se chtějí ve Sparku naučit psát efektivní transformace a ETL aplikace a chtějí rozumnět tomu, jak Spark funguje pod povrchem, aby toho mohli využít pro optimalizaci svých jobů a dosažení vysokého výkonu
Cíle kurzu
- Základní koncepty technologie Apache Spark
- Jak používat DataFramové API v PySparku pro psaní ETL aplikací a interaktivní analýzu dat
- Jak fungují DataFramy pod povrchem
- Jak funguje optimalizační engine ve Sparku
- Jak probíhá exekuce Sparkové aplikace
- Jak rozumnět exekučním plánům a jak toho využít pro optimalizaci jobu
- Základní koncepty knihovny ML Pipelines pro machine learning
- Základní koncepty knihovny GraphFrames pro analýzu grafu
- Jak zpracovávat data v (téměř) reálném čase ve Sparku (Structured streaming)
- Jaké jsou novinky ve Sparku 2.3, 2.4, 3.0
Garant kurzu
David Vrba Ph.D.
David pracuje v Socialbakers jako data scientist a data engineer. Na denní bázi se zabývá optimalizací Spakových aplikací a vyvíjí Sparkové joby, které zpracovávají data na různých škálách od jednotek GBs až po desítky TBs. Vedle toho se zabývá výukou Sparkových trainingů a jeho školeními již prošla celá řada týmů zejména datoví analytici, scientisti a inženýři. David je také Sparkovým kontributorem, přispívá do zdrojového kódu a pravidelně přednáší na konferencích a meetupech jako je Spark + AI Summit, MLPrague nebo Spark + AI Prague meetup.
Osnova
Úvod do Apache Spark
- Rámcový úvod do Sparku
- Úvod do architektury
- SparkuSpark APIs: high level vs low level vs internal APIs
Strukturované APIs v PySparku
- Základní koncepty dataframového API
- DataFrame, Row, Column, Schema
- Operace v SparkSQL: transformace, akce
- Práce s dataframem: vytvoření a základní transformace
- Práce s různými datovými typy (Integer, String, Date, Timestamp, Boolean)
- Filtrování
- Podmínky
- Nakládání s null hodnotami
- Práce s různými datovými formáty (parquet, json, csv)
Lab I
- Jednoduché ETL
Pokročilé operace s DataFramy
- DataFramové DSL vs SQL
- Aggregace a window funckce
- JoinyUživatelem definované funkce (vanila Python & Pandas UDFs)
- Práce s komplexními datovými typy (higher order funkce)
Lab II
- Analýza dat pomocí DataFramového API
Metastore a tabulky
- Catalog API
- Vytvoření tabulky
- Ukládání dat
- Na co si dát pozor
Labl III
- Ukládání dat a práce s tabulkami
Interní procesy ve Spark SQL
- Catalyst - Optimalizační engine ve Sparku
- Logické plánování
- Fyzické plánování
Exekuční vrstva
- Úvod do nízko-úrovňových APIs - RDDs
- Struktura Sparkového jobu (Stages, Tasks, Shuffle)
- DAG SchedulerLifecycle
- Sparkové aplikace
Lab IV
- Spark UI
Performance tuning
- Persistence dat (checkpointing, caching)
- Bucketing a partitioning
- Nejčastější bottlnecky ve Sparkových aplikacích
- Optimalizační tipy
Úvod do pokročilé analytiky ve Sparku
- Machine learning - základní koncepty ML Pipelines (Transformer, Estimator, Evaluator, Pipeline)
- Analýza grafu - zákldadní koncepty knihovny GraphFrames
Lab V
- Machine Learning a graph processing
Strukturované streamování (Structured Streaming API)
- Základní koncepty streamingu ve Sparku
- Stateful vs stateless transformace
- Event time processing
- Co je to watermark a jak se používá pro uzavření stavu
Předpoklady účastníka
K absolvování kurzu není zapotřebí žádná předchozí znalost technologie Apache Spark. Určitou výhodou je základní znalost jazyků Python a SQL, není to však nutnou podmínkou pro absolvování. Kurz je veden v jazyce Python v notebookovém prostředí Jupyter.