EAS-017 Основы Apache Spark
Описание курса
Этот тренинг дает представление об основных понятиях фреймворка Apache Spark и методах его использования для разработки приложений, обрабатывающих данные. Мы рассмотрим применение этого фреймворка для автоматической генерации кода и его распределенного выполнения. Слушатели научатся работать с файлами данных в различных форматах (CSV, Json, Avro, Parquet) в приложениях на Spark, используя SQL и DataFrame. Кроме того, речь пойдет о загрузке данных с внешних хранилищ и во внешние хранилища, такие как Cassandra, Kafka, Postgres и S3. Практические упражнения выполняются на языке Python с использованием веб-ноутбуков Jupyter.
Модуль 1
- Map/Reduce и Spark в Hadoop. Примеры
- Spark в Lambda-архитектуре
- Кластеры для распределенной обработки данных
- Как запустить Spark
- Исполнители, задания, задачи в Spark
Модуль 2
- В чем разница между SparkSession и SparkContext
- Как создавать и распараллеливать RDD
- Как трансформировать RDD
- Как анализировать и управлять обработкой RDD (план и DAG)
- Как сохранять и хранить RDD в HDFS
- Как группировать и соединять RDD
Модуль 3
- В чем разница между RDD и DataFrame
- Как создавать и распараллеливать DataFrame
- Как анализировать и управлять выполнением DataFrame (план и DAG)
- Как сохранять DataFrame в HDFS
Модуль 4
- Как читать/писать данные с файлового хранилища (HDFS, S3, FTP, локальной файловой системы)
- Какой формат данных выбрать
- Как распараллеливать чтение/запись в JDBC
- Как создать DataFrame из MPP (Cassandra, Vertica, Greenplum)
- Как работать с Kafka
Модуль 5
- Как считать строки
- Как обрабатывать математические агрегации
- Как группировать строки
- Как правильное соединять DataFrames
Модуль 6
- Как и зачем переключаться на Spark SQL
- Как работать с таблицей EXTERNAL
- Как работать с таблицей MANAGED
Модуль 7
- Какие оконные функции существуют и как их использовать в Spark
- Когда не следует использовать оконные функции
- Что такое UDF, UDAF и как их использовать
- Как оптимизировать UDFs в PySpark
Модуль 8
- Логические: как добавить фильтр
- Численные: как подсчитать сумму, произведение, статистику
- Строковый: как использовать регулярные выражения
- Комплексные: как работать со структурами, массивами
- Как работать с данными
Модуль 9
- Недостаточно памяти
- Маленькие файлы в HDFS
- Асимметричные данные
- Медленные соединения
- Трансляция больших таблиц
- Совместное использование ресурсов
- Новые механизмы оптимизации: AQE и DPP
Модуль 10
- Оркестраторы
- Устройство Airflow
- Встроенные операторы Airflow
- SparkSubmitOperator