Detail kurzu

Apache Spark - od jednoduchých transformací po vysoce výkonné joby

DataScript s.r.o.

Popis kurzu

V TĚCHTO MĚSÍCÍCH NABÍZÍME KURZY VE VIRTUÁLNÍ PODOBĚ.

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.

Obsah kurzu

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 Sparku

  • Spark 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

  • Joiny

  • Už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 Scheduler

  • Lifecycle 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.


Cieľová 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
Hodnotenie




Organizátor