Kurzy a certifikace Open Source

Big data

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

23.500 CZK
Days2
18. 6.19. 6. 2020
Praha
CZ
24. 8.25. 8. 2020
Praha
CZ
10. 9.11. 9. 2020
Praha
ENG

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.

 

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.

 

Poptejte kurz u nás

Kurzy
Submit
* Povinné pole