Kurzy a certifikace Open Source

Big data

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

23.500 CZK
Days2
29. 1.30. 1. 2019
Praha
CZ

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

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

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
  • Co se odehrává ve Sparku pod povrchem po odeslání query na exekuci
  • Jak probíhá exekuce Sparkové aplikace
  • Jak rozumnět exekučním plánům a jak toho využít pro optimalizaci jobu
  • Pokročilé optimalizační techniky pro dosažení výsokého výkonu
  • Základní koncepty knihoven ML Pipelines a GraphFrames
  • Jak tyto knihovny použít pro pokročilou analytiku
  • Jaké jsou základní koncepty Strukturovaného streamování ve Sparku
  • Jak používat Spark ve třech různých prostředích (lokální PySpark s Jupyter notebookem, Databricks CE, vanila Spark na Amazon EMR)
  • Jaké jsou novinky ve Sparku 2.2, 2.3, 2.4

Garant kurzu

David Vrba Ph.D.

David pracuje v Socialbakers na pozici Data Science a zabývá se zde prediktivní analytikou a zpracováním malých i velkých objemů dat, optimalizuje Sparkové joby a vede výukové tréningy zaměřené na Spark. Pracuje v týmu kde se Spark integruje s dalšími technologiemi a svět data science se tu potkává se světem data engineeringu.

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 1

  • 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 (novinky ve Spark 2.4)

Lab 2

  • Analýza dat pomocí DataFramového API

Interní procesy ve Spark SQL

  • Catalyst - Optimalizační engine ve Sparku
  • Logické plánování (Analyzer, Optimizer, Catalog, Cache Manager)
  • Rule based optimalizace
  • Cost based optimalizace
  • Fyzické plánování: Query planner, strategie, WholeStage CodeGen

Exekuční vrstva

  • Úvod do nízko-úrovňových APIs (RDD, broadcastové proměnné)
  • Struktura Sparkového jobu (Stages, Tasks, Shuffle)
  • DAG Scheduler
  • Lifecycle Sparkové aplikace

Lab 3

  • RDD transformace

Jak dosáhnout ve Sparku vysokého výkonu

  • Persistence dat (checkpointing, caching)
  • Nejčastější bottlnecky ve Sparkových aplikacích
  • Jak se vyhnout shufflu
  • Jak nakládat s nerovnoměrně distribuovanými daty
  • Bucketing & partitioning
  • Optimalizační tipy

Úvod do strojového učení a pokročilé analytiky ve Sparku

  • Základní koncepty ML Pipelines (Transformer, Estimator, Pipeline)
  • GraphFrames (Algoritmy které knihovna poskytuje)

Lab 4

  • Analýza dat z perspektivy grafu

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 na úč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.

Technické požadavky

  • Nainstalovaný Jupyter notebook + PySpark 2.2 nebo vyšší

Poptejte kurz u nás

Kurzy
Submit
* Povinné pole