- Кто такой Spark-разработчик?
- Что делают Spark-разработчики и чем занимаются?
- Что должен знать и уметь Spark-разработчик?
- Востребованность и зарплаты Spark-разработчиков
- Как стать Spark-разработчиком и где учиться?
- 5+ лучших курсов для обучения Spark-разработчика: подробный обзор
- 1 место. Курс «Spark Developer» — OTUS
- 2 место. Курс «Анализ данных с Apache Spark» — ООО “УЦ КОММЕРСАНТ”
- 3 место.Курс «Анализ данных с Apache Spark» — Академия АйТи
- Курс «Основы Apache Spark» — Luxoft Training
- Курс «Apache Spark» — bigdataschool
- Курс «Apache Spark» — НОЧУ ДПО «НЬЮПРОЛАБ»
- Курс «Промышленное машинное обучение на Spark» — НИУ ВШЭ
Кто такой Spark-разработчик?
В обязанности разработчика Apache Spark входит создание заданий Spark/Scala для агрегации и преобразования данных, создание модульных тестов для методов Spark helper и преобразований, написание документации в стиле Scaladoc по всему коду, а также проектирование конвейеров обработки данных.
Что делают Spark-разработчики и чем занимаются?
Обязанности на примере одной из вакансий:
- Разработка новых компонентов для вычислительного (Spark) и ETL (NiFi + Spark) слоев.
- Развитие интерпретатора собственного высокоуровневого языка OTL для обработки данных.
- Участие в проектировании архитектурных решений для развития всей платформы.
- Code review коллег по команде.
Что должен знать и уметь Spark-разработчик?
Требования к Spark-разработчикам:
- Глубокие знания Scala.
- Знания JVM.
- Понимание принципов параллельной и распределенной обработки данных.
- Знание Spark.
Востребованность и зарплаты Spark-разработчиков
На сайте поиска работы в данный момент открыто 772 вакансии, с каждым месяцем спрос на Spark-разработчиков растет.
Количество вакансий с указанной зарплатой Spark-разработчика по всей России:
- от 125 000 руб. – 96
- от 215 000 руб. – 78
- от 305 000 руб. – 41
- от 400 000 руб. – 16
- от 490 000 руб. – 6
Вакансий с указанным уровнем дохода по Москве:
- от 170 000 руб. – 61
- от 235 000 руб. – 53
- от 305 000 руб. – 29
- от 370 000 руб. – 19
- от 440 000 руб. – 6
Вакансий с указанным уровнем дохода по Санкт-Петербургу:
- от 175 000 руб. – 14
- от 250 000 руб. – 12
- от 330 000 руб. – 7
- от 410 000 руб. – 4
- от 485 000 руб. – 2
Как стать Spark-разработчиком и где учиться?
Варианты обучения для Spark-разработчика с нуля:
- Самостоятельное обучение – всевозможные видео на YouTube, книги, форумы, самоучители и т.д. Плюсы – дешево или очень недорого. Минусы – нет системности, самостоятельное обучение может оказаться неэффективным, полученные навыки могут оказаться невостребованными у работодателя;
- Онлайн-обучение. Пройти курс можно на одной из образовательных платформ. Такие курсы рассчитаны на людей без особой подготовки, поэтому подойдут большинству людей. Обычно упор в онлайн-обучении делается на практику – это позволяет быстро пополнить портфолио и устроиться на работу сразу после обучения.
Ниже сделали обзор 5+ лучших онлайн-курсов.
5+ лучших курсов для обучения Spark-разработчика: подробный обзор
Курс рассчитан на Data инженеров, желающих глубже изучить Spark, а попутно также Hadoop и Hive.
На курсе вы изучите следующие основные темы:
- Hadoop (основные компоненты, дистрибутивы вендоров)
- Архитектура HDFS
- Архитектура YARN
- Форматы данных
- Spark
- Spark Streaming и Flink
- Hive
- Оркестрация, Мониторинг и CI/CD
и т.д.
Научитесь применять все это на практике и закрепите с помощью интересных и сложных домашних заданий и выпускного проекта.
После прохождения курса вы сможете:
- Использовать Hadoop для обработки данных
- Взаимодействовать с его компонентами через консольные клиенты и API
- Работать со слабоструктурированными данными в Hive
- Писать и оптимизировать приложения на Spark
- Писать тесты для Spark-приложений
- Использовать Spark для обработки табличных, потоковых, гео-данных и даже графов
- Настраивать CI и мониторинг Spark-приложений.
Программа обучения:
Модуль 1. Scala
- Тема 1. Основы Scala
- Тема 2. Сборка проектов на Scala
Модуль 2. Hadoop
- Тема 3. Hadoop
- Тема 4. HDFS
- Тема 5. YARN
- Тема 6. Форматы данных
Модуль 3. Spark
- Тема 7. Архитектура приложения Spark
- Тема 8. RDD/Dataframe/Dataset
- Тема 9. Методы оптимизации приложений Spark
- Тема 10. Написание коннекторов для Spark
- Тема 11. Тестирование приложений Spark
- Тема 12. Spark ML
Модуль 4. Streaming
- Тема 13. Kafka
- Тема Spark Streaming
- Тема Structured Streaming
- Тема 16. Flink — часть 1
- Тема 17. Flink — часть 2
- Тема 18. Q&A
Модуль 5. Apache Hive
- Тема 19. Обзор Hive
- Тема 20. HiveQL
Модуль 6. Обслуживающие системы
- Тема 21. Оркестрация процессов обработки данных
- Тема 22. Мониторинг и логирование для Spark-приложений
- Тема 23. CI/CD для Spark и Hive
Модуль 7. Проектная работа
- Тема 24. Выбор темы и организация проектной работы
- Тема 25. Консультация по проектам и домашним заданиям
- Тема 26. Защита проектных работ
Выпускной проект
В качестве выпускного проекта будет построена ETL-система на основе Hadoop, включающая в себя:
- Загрузку данных из источников
- Простой Data Lake на основе этих данных с использованием Hive
- Лямбда-архитектуру для реалтайм-аналитики на основе Spark
После курса Вы:
- заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров, презентации к занятиям, а также решение задач и проектов в виде кода на github и другие дополнительные материалы;
- получите сертификат о прохождении курса;
- получите приглашение пройти собеседование в компаниях-партнерах (эту возможность получают самые успешные студенты).
3-дневный практический курс для разработчиков Apache Spark, дата инженеров и аналитиков данных, Data Scientist’ов и других специалистов Big Data, которые используют Spark SQL, потоковую обработку Spark Streaming, машинное обучение MLLib и построение графов Spark GraphX.
Программа курса:
- Обзор Apache Spark
Архитектура Обзор компонентов Spark и их назначения - Основные абстракции Apache Spark
Трансформации и действия, Lazy Evaluation - Знакомство с Dataframes
Structured API и основная абстракция Spark – Dataframe - Знакомство со Spark RDD
Low Level API, использование Resilient Distributed Dataset - Apache Spark SQL
- Получение данных из SQL-источников и обработка данных с помощью Spark SQL
- Отправка данных в SQL СУБД и работа с Hive QL
- Spark SQL и Hadoop
- Работа с источниками данных
- Ввод и вывод в Apache Spark
- Работа с файлами и базами данных
- Производительность и параллелизм в Apache Spark
Планы выполнения запроса: логические и физические - Конфигурирование Apache Spark
Принципы конфигурирования и основные настройки - Spark Streaming
- Разница работы в режимах OLAP и OLTP. Основной workflow
- Виды Spark Streams. Особенности исполнения streaming кода
- Checkpoint в Spark Streaming
- GraphX
- Задачи графов в программировании. Место графов в модели распределенных вычислений
- Представление графов в GraphX. Операции с графами
- MLLib
- Задачи машинного обучения и проблематика больших данных
- Основные возможности Spark MLLib
- Обработка слабоструктурированных данных
- Работа с JSON файлами и строками
- Обработка информации, представленной в виде XML.
Целевая аудитория:
Специалисты, аналитики данных и разработчики, желающие получить опыт настройки и использования компонентов Apache Spark.
Успешное окончание обучения по программе курса позволит специалистам:
- Использовать Spark Streaming для создания приложений потоковой обработки данных
- Понимать разницу использования различных форматов хранения данных и использования RDD, dataframes и datasets
- Обращаться к данным с использование SQL или Hive QL
- Настраивать и использовать компонент GraphX.
Цель курса:
Совершенствование знаний и навыков, необходимых для анализа данных с помощью Apache Spark.
Расписание:
- Экосистема Apache Spark — Spark RDD
- Архитектура Spark. Принципы работы Resilent Data Distribution
- Обзор компонентов Spark и их назначения
- Конфигурация Spark из Java. Запуск на одной или нескольких машинах. Запуск поверх hadoop
- Основные классы и базовый workflow — Spark RDD
- Spark core- работа с аккумуляторами и переменными среды
- Apache Spark SQL
- Расширение базовой системы классов- DataSet и DataFrame
- Получение данных из SQL-источников с помощью Spark SQL
- Отправка данных в SQL СУБД и работа с Hive QL
- Spark SQL и Hadoop
- Планы выполнения. Logical и physical планы. Настройки планов выполнения
- Spark Streaming
- Разница работы в режимах OLAP и OLTP. Основной workflow
- Виды Spark Stream-ов. Особенности исполнения streaming кода
- Windows в Spark Streaming
- Кеширование в Spark Streaming
- Checkpoint-ы в Spark Streaming
- GraphX
- Задачи графов в программировании. Место графов в модели распределенных вычислений
- Представление графов в GraphX. Создание графов
- Операции с графами в GraphX
- Выбор модели распределения графа в GraphX.
Курс дает представление об основах Apache Spark и методах разработки приложений, обрабатывающих данные на его основе. Рассматриваются как базовые возможности Spark (RDD), так и проекты, расширяющие их набор: Spark SQL, Spark Streaming, MLLib, Spark ML, GraphX.
Целевая аудитория:
Разработчики, архитекторы.
Цели:
- Понимать ключевые концепции и архитектуру Spark;
- Разрабатывать программы обработки данных как последовательности преобразований RDD;
- Разрабатывать программы обработки данных на SQL;
- Обрабатывать потоковые данные;
- Использовать готовые алгоритмы машинного обучения и анализа графов;
- Уметь переносить данные между Spark и внешними системами (Kafka, Cassandra).
Разбираемые темы:
- Основные концепции и архитектура Spark;
- Программирование с RDD;
- Использование RDD с парами ключ/значение;
- Загрузка и сохранение данных;
- Аккумуляторы и широковешательные переменные;
- Spark SQL, DataFrames, Datasets;
- Spark Streaming;
- Машинное обучение с использованием MLLib и Spark ML;
- Анализ графов с использованием GraphX.
После окончания курса выдаётся сертификат на бланке Luxoft Training.
Курсы предназначены для разработчиков распределенных приложений, инженеров больших данных, аналитиков Big Data, DataOps и DevOps-инженерам, а также специалистов по Data Science и Machine Learning, которые хотят получить следующие знания и навыки:
- Познакомиться с основными функциональными возможностями и базовыми компонентами Apache Spark Core для анализа больших данных и разработки распределенных приложений
- Понять особенности потоковой и микро-пакетной обработки данных в режиме near real-time со Spark Streaming
- Освоить аналитику больших данных с помощью стандартного языка структурированных запросов на Spark SQL
- Изучить графовые алгоритмы обработки информации, парадигму Pregel и ее представление в Spark Graphframe
- Разобраться с реализацией нейросетевых алгоритмов и других методов Machine Learning в Spark MLLib
- Знать методы интеграции Spark-приложений с другими Big Data системами и внешними источниками данных; уметь строить эффективные конвейеры обработки больших данных (Pipelines) на базе Apache Spark, Airflow, Livy и других технологий Big Data
- Понимать способы и возможности оптимизации каждого компонента платформы Apache Spark, от производительности кластера до SQL-запросов и накладных расходов в Big Data Pipeline.
Курсы:
- Анализ данных с Apache Spark
- Core Spark — основы для разработчиков
- Потоковая обработка в Apache Spark
- Машинное обучение в Apache Spark
- Графовые алгоритмы в Apache Spark.
Для кого этот курс?
- Разработчики
У вас есть опыт программирования, но не хватает знаний и умений в работе с Apache Spark? В этом курсе вы научитесь выполнять ETL-операции над RDD, Dataframes, использовать Spark Streaming. - Аналитики
Вы умеете анализировать данные, но требуется знание новых инструментов? Вы научитесь анализировать большие объемы данных при помощи Apache Spark, строить ML-модели в распределенной среде на кластере. - Менеджеры
Вы занимаетесь развитием продукта или подразделения? В этом курсе вы получите погружение в Apache Spark, поймете юзкейсы использования этого инструмента, попробовав многие вещи своими руками.
Чему вы научитесь:
В курсе есть четыре составляющих
- RDD и Dataframes API
Научитесь загружать данные в Spark и преобразовывать их в RDD или датафреймы, а также совершать операции и трансформации над ними. Узнаете об отличиях этих двух форматов и в каких случаях их стоит использовать, а также про узкие и широкие трансформации, broadcast-переменные и аккумуляторы. - Spark ML
Научитесь тренировать модели машинного обучения в Spark и делать при помощи них прогнозы. Узнаете, как создавать автоматизированные пайплайны в Spark ML из различных трансформаций. - Spark GraphX
Научитесь работать с графовыми данными в Spark при помощи специальной библиотеки GraphX. Узнаете о том, как правильно анализировать данные из соцсетей. - Spark Streaming
Научитесь работать в режиме near real-time при помощи Spark Streaming, подключаясь к Kafka как источнику данных и производя агрегации над ними.
Лабы этого курса
- Неперсонализированные рек. Системы
Задача — построить различного рода топы для рекомендации фильмов пользователям, по которым еще нет никаких данных, используя RDD в Apache Spark. - Content-based рек. Системы
Вам нужно будет, рассчитывая похожесть описаний онлайн-курсов, выявить те, которые можно рекомендовать в дополнение пользователям, используя Spark Dataframes. - Коллаборативная фильтрация
Используя матричные разложения, разработать рекомендации, учитывающие жанр, стиль и другие неявные факторы фильма, используя Spark. - Гибридная рек. Система
Соревнование, в котором вам нужно будет добиться наилучшего скора, используя вместе разные алгоритмы рекомендательных систем, в том числе алгоритмы Spark ML. - Рекомендации фильмов по телесмотрению
Используя данные по просмотру телепередач разных пользователей, сделать рекомендации фильмов по подписке с использованием Spark ML.
Курс о настоящем Apache Spark, который базируется на практическом использовании этого инструмента в «боевых условиях» на потоках данных из миллионов транзакций в день. Это практический курс, где вся теория подкреплена практикой. Вы получите комплексные знания о новом инструменте и научитесь его применять.
Чему научитесь:
- Работать с Apache Spark RDD/DataFrame
- Настраивать конфигурационные файлы Apache Spark
- Создавать исследовательские/ML приложения Spark
- Понимать процесс тестирования процесса Apache Spark
- Работать с экосистемой Spark
- Понимать архитектуру Spark
Для кого:
- Студентов, получающих высшее образование, у которых есть опыт программирования и работы с базами данных, но ещё не применяющих Apache Spark.
- Разработчиков и аналитиков данных с высшим или средним профессиональным образованием.
Программа:
8 недель обучения
- Как работают и где живут большие данные
Введение в большие данные. Организация хранения данных и отличие от обычных систем. Map-Reduce и правила работы с большими данными. Обзор экосистемы. SQL поверх больших данных. - Погружение в среду Spark. Spark RDD / Spark SQL
Знакомство со Spark. Сравнение RDD и DataFrame. Реализация методов или расчетов в RDD и в DataFrame. Развитие инструмента: от функционального программирования с RDD до приемлемых и знакомых методов из Pandas в Spark DataFrame. - Advanced SQL (+ pandas UDF и др.)
Усложнение методов аналитики и обработки данных. Трансформации данных и настоящие примеры. Сравнение методов. Разбор каждого метода: где и какой метод можно применять. Инструменты и новые функции (Pandas UDF и др.). Настройки (configuration Spark). - Spark ML / Spark TimeSeries
Машинное обучение на Решение задач по анализу временных рядов. - Advanced ML & проверка результатов качества моделей
Подключение Java библиотек Xgboost и Catboost в Spark. Подготовка Model Quality по результатам обучения модели регрессии и классификации. - Spark GraphX / Spark Streaming
Графовые данные в Spark в библиотеке Анализ социальных сетей. Streаming в Spark. Использование данных из реального времени. - Spark Ecosystem (MLFlow, AirFlow, H2O AutoML)
Интеграция Spark с другими промышленными сервисами. Spark в MLFlow и AirFlow для автоматизации работы. Интеграция Spark в другие библиотеки и продукты (на примере H2O). - Spark в архитектуре проекта / Spark CI/CD
Правильная архитектура Spark и работа с ним. Автоматизация (Continious Integration) процесса разработки и интеграции кода в готовый продукт. Структура Spark проекта и «что можно ещё поменять в Spark» для ускорения или упрощения работы.
Документ при успешном завершении обучения.