Кто такой Spark-разработчик?
В обязанности разработчика Apache Spark входит создание заданий Spark/Scala для агрегации и преобразования данных, написание модульных тестов для помощников и преобразований Spark, написание документации в стиле Scaladoc по всему коду и проектирование конвейеров обработки данных.
Что делают Spark-разработчики и чем занимаются?
Обязанности, например, на одной из вакантных должностей:
- Разработка новых компонентов для слоев обработки данных (Spark) и ETL (NiFi + Spark.
- Разработка интерпретатора собственного высокоуровневого языка OTL для вычислений.
- Участие в разработке архитектурных решений для развития всей платформы.
- Проверка кода товарищами по команде.
Что должен знать и уметь Spark-разработчик?
Требования к разработчикам Spark:
- Глубокие знания Scala.
- Знание JVM.
- Понимание принципов параллельных и распределенных вычислений.
- Знание Искры.
Востребованность и зарплаты 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-разработчика: подробный обзор
1 место. Курс «Spark Developer» — OTUS
https://otus.ru/lessons/spark/
Цена: 65 000 ₽
Курс предназначен для компьютерных инженеров, которые хотят узнать больше о Spark, а также о Hadoop и Hive.
На курсе вы изучите следующие основные предметы:
- Hadoop (основные компоненты, дистрибутивы поставщиков)
- Архитектура HDFS
- Архитектура ГАРН
- Форматы данных
- Искра
- Spark Streaming и Flink
- Улей
- Оркестрация, мониторинг и CI/CD
и так далее
Научитесь применять все на практике и подкрепите это интересными и сложными домашними заданиями и выпускным проектом.
После прохождения курса вы сможете:
- Используйте Hadoop для обработки данных
- Взаимодействие с компонентами через консольные клиенты и API
- Работа с полуструктурированными данными в Hive
- Пишите и оптимизируйте приложения на Spark
- Написание тестов для приложений Spark
- Используйте Spark для обработки таблиц, потоковой передачи, геоданных и даже графиков
- Настройте CI и мониторинг приложений Spark.
Программа обучения:
Модуль 1
- Тема 1. Основы Scala
- Тема 2. Сборка проектов на Scala
Модуль 2
- Тема 3. Хадуп
- Тема 4. HDFS
- Тема 5. ПРЯЖА
- Тема 6. Форматы данных
Модуль 3
- Тема 7: Архитектура приложения Spark
- Тема 8. RDD/Dataframe/Dataset
- Тема 9. Методы оптимизации Spark-приложений
- Тема 10. Написание ссылок для Spark
- Тема 11: Тестирование приложений Spark
- Тема 12. Кик ML
Модуль 4
- Тема 13. Кафка
- Тема потокового вещания Spark
- Структурированная тема потокового вещания
- Тема 16. Хорошо — часть 1
- Тема 17. Хорошо — часть 2
- Тема 18. Вопросы и ответы
Модуль 5
- Тема 19. Обзор Hive
- Тема 20
Модуль 6
- Тема 21. Оркестрация процессов обработки данных
- Тема 22. Мониторинг и ведение журналов для приложений Spark
- Тема 23. CI/CD для Spark и Hive
Модуль 7. Проектная работа
- Тема 24. Выбор темы и организация проектной работы
- Тема 25. Консультация по проектам и домашним заданиям
- Тема 26. Охрана инженерных работ
Дипломная работа
В качестве окончательного проекта будет построена система ETL на основе Hadoop, в том числе:
- Загружает данные из источников
- Простое озеро данных на основе этих данных с использованием Hive
- Лямбда-архитектура для аналитики в реальном времени на основе Spark
После курса:
- взять с собой полный комплект обучающих материалов: видео всех вебинаров, презентации к занятиям, а также решения задач и проектов в виде кода на github и другие дополнительные материалы;
- получить сертификат о прохождении курса;
- получить приглашение на собеседование в компании-партнеры (эта возможность предоставляется наиболее успешным студентам).
2 место. Курс «Анализ данных с Apache Spark» — ООО “УЦ КОММЕРСАНТ”
https://spark-school.ru/courses/apache-spark-data-analyz/
Цена: 54 000 ₽
3-дневный практический курс для разработчиков Apache Spark, инженеров и аналитиков данных, специалистов по данным и других специалистов по работе с большими данными, использующих Spark SQL, Spark Streaming, MLLib Machine Learning и Spark GraphX Graphing.
Программа курса:
- Обзор Apache Spark
Обзор архитектуры компонентов Spark и их назначения - Абстракции ядра Apache Spark
Преобразования и действия, ленивые вычисления - Введение во фреймы данных
Структурированный API и абстракция ядра Spark — Data Framework - Введение в Spark RDD
API низкого уровня, использующий устойчивый распределенный набор данных - Apache Spark SQL
- Извлекайте данные из источников SQL и обрабатывайте данные с помощью Spark SQL
- Отправка данных в СУБД SQL и работа с Hive QL
- Spark SQL и Hadoop
- Работа с источниками данных
- Ввод и вывод в Apache Spark
- Работа с файлами и базами данных
- Производительность и параллелизм в Apache Spark
Планы выполнения запросов: логические и физические - Настройка Apache Spark
Принципы настройки и основные настройки - Искровой поток
- Разница между работой в режиме OLAP и OLTP. Основной рабочий процесс
- Виды искровых токов. Функции при выполнении потокового кода
- Контрольная точка в Spark Streaming
- ГрафикX
- Проблемы с графами в программировании. Размещение графов в модели распределенных вычислений
- Представление графов в GraphX. Операции с графиками
- MLLib
- Задачи машинного обучения и проблемы больших данных
- Основные возможности Spark MLLib
- Обработка полуструктурированных данных
- Работа с файлами и строками JSON
- Обработка информации, представленной в виде XML.
3 место.Курс «Анализ данных с Apache Spark» — Академия АйТи
https://academyit.ru/courses/SPARK/
Стоимость: 52 000 ₽ — 54 000 ₽
Целевая группа:
Профессионалы, аналитики данных и разработчики, которые хотят получить опыт настройки и использования компонентов Apache Spark.
Успешное освоение программы курса позволит специалистам:
- Используйте Spark Streaming для создания приложений для потоковых вычислений
- Понимать разницу между использованием различных форматов хранения данных и использованием RDD, фреймов данных и наборов данных
- Доступ к данным с помощью SQL или Hive QL
- Настройте и используйте компонент GraphX.
Цели курса:
Совершенствуйте знания и навыки, необходимые для анализа данных с помощью Apache Spark.
Маршрут:
- Экосистема Apache Spark — Spark RDD
- Искра архитектуры. Как работает надежное распределение данных
- Обзор компонентов искры и их назначение
- Конфигурация Spark из Java. Запуск на одной или нескольких машинах. Работает поверх Hadoop
- Базовые классы и базовый рабочий процесс — Spark RDD
- Ядро Spark — работает с аккумуляторами и переменными среды
- Apache Spark SQL
- Расширение системы базовых классов — DataSet и DataFrame
- Извлечение данных из источников SQL с помощью Spark SQL
- Отправка данных в СУБД SQL и работа с Hive QL
- Spark SQL и Hadoop
- Планы реализации. Логический и физический планы. Настройки плана выполнения
- Искровой поток
- Разница между работой в режиме OLAP и OLTP. Основной рабочий процесс
- Виды искровых токов. Функции при выполнении потокового кода
- Windows в Spark Streaming
- Кэширование в Spark Streaming
- Контрольные точки в Spark Streaming
- ГрафикX
- Проблемы с графами в программировании. Размещение графов в модели распределенных вычислений
- Представление графов в GraphX. Создание графиков
- Графические операции в GraphX
- Выбор модели распределения графа в GraphX.
Курс «Основы Apache Spark» — Luxoft Training
https://www.luxoft-training.ru/kurs/osnovy_apache_spark.html
Цена: 37 000 ₽
Курс дает понимание основ Apache Spark и методов разработки приложений, обрабатывающих данные на его основе. Рассмотрены как базовые возможности Spark (RDD), так и проекты, расширяющие их набор: Spark SQL, Spark Streaming, MLLib, Spark ML, GraphX.
Целевая группа:
Девелоперы, архитекторы.
Цель:
- Понимать ключевые концепции и архитектуру Spark;
- Разрабатывать программы обработки данных как последовательность преобразований RDD;
- Разрабатывать программы обработки данных на языке SQL;
- Обработка потоковых данных;
- Используйте готовые алгоритмы машинного обучения и анализа графов;
- Умеет передавать данные между Spark и внешними системами (Kafka, Cassandra).
Темы охватывали:
- Основные концепции и архитектура Spark;
- Программирование с помощью RDD;
- Использование RDD с парами ключ/значение;
- Загружать и сохранять данные;
- Аккумуляторы и широковещательные переменные;
- Spark SQL, кадры данных, наборы данных
- Искровой поток;
- Машинное обучение с использованием MLLib и Spark ML;
- Анализ графиков с помощью GraphX.
После прохождения курса выдается сертификат на форме Luxoft Training.
Курс «Apache Spark» — bigdataschool
https://www.bigdataschool.ru/apache-spark
Цена: 36 000 ₽ – 54 000 ₽
Курсы предназначены для разработчиков распределенных приложений, инженеров больших данных, аналитиков больших данных, инженеров DataOps и DevOps, а также специалистов по науке о данных и машинному обучению, которые хотят приобрести следующие знания и навыки:
- Познакомьтесь с основными функциями и основными компонентами Apache Spark Core для анализа больших данных и разработки распределенных приложений
- Понимание потоковой передачи практически в реальном времени и микропакетных вычислений с помощью Spark Streaming
- Мастер анализа больших данных с помощью стандартного языка структурированных запросов Spark SQL
- Изучите графовые алгоритмы обработки информации, парадигму Pregel и ее представление в Spark Graphframe
- Понимать реализацию алгоритмов нейронных сетей и других методов машинного обучения в Spark MLLib
- Знать, как интегрировать приложения Spark с другими системами больших данных и внешними источниками данных; уметь строить эффективные конвейеры обработки больших данных (Pipelines) на основе Apache Spark, Airflow, Livy и других технологий Big Data
- Узнайте, как оптимизировать каждый компонент платформы Apache Spark, от производительности кластера до запросов SQL и накладных расходов конвейера больших данных.
Курс:
- Анализ данных с помощью Apache Spark
- Core Spark — основы для разработчиков
- Потоковая передача в Apache Spark
- Машинное обучение в Apache Spark
- Алгоритмы графов в Apache Spark.
Курс «Apache Spark» — НОЧУ ДПО «НЬЮПРОЛАБ»
https://newprolab.com/ru/spark-module
Цена: 32 000 ₽
Для кого этот курс?
- Разработчики
У вас есть опыт программирования, но не хватает знаний и навыков для работы с Apache Spark? В этом курсе вы узнаете, как выполнять операции ETL с RDD, фреймами данных, используя Spark Streaming. - Аналитики
Вы умеете анализировать данные, но требуется знание новых инструментов? Вы научитесь анализировать большие объемы данных с помощью Apache Spark, строить модели машинного обучения в распределенной среде на кластере. - Лидеры
Вы разрабатываете продукт или подразделение? В этом курсе вы получите полное погружение в Apache Spark, поймете, как использовать этот инструмент и многое попробуете своими руками.
Чему вы хотите научиться:
Курс состоит из четырех частей
- API RDD и фреймов данных
Узнайте, как загружать данные в Spark и преобразовывать их в RDD или фреймы данных, а также выполнять над ними операции и преобразования. Вы узнаете о различиях между этими двумя форматами и о том, когда их использовать, а также об узких и широких преобразованиях, широковещательных переменных и аккумуляторах. - Кик МЛ
Узнайте, как обучать модели машинного обучения в Spark и использовать их для прогнозирования. Узнайте, как создавать автоматизированные конвейеры в Spark ML на основе различных преобразований. - График искрыX
Узнайте, как работать с графическими данными в Spark, используя специальную библиотеку GraphX. Научитесь правильно анализировать данные из социальных сетей. - Искровой поток
Научитесь работать практически в реальном времени с помощью Spark Streaming, подключившись к Kafka в качестве источника данных и выполняя их агрегирование.
Лаборатории этого курса
- Безличные реки. Системы
Задача — построить разные типы пиков, чтобы рекомендовать пользователям фильмы, по которым еще нет данных, используя RDD в Apache Spark. - Рек на основе контента Системы
Вы должны, вычислив сходство между описаниями онлайн-курсов, определить те, которые можно рекомендовать в дополнение к пользователям, использующим Spark Dataframes. - Совместная фильтрация
Используя матричные декомпозиции, разработайте рекомендации, учитывающие жанр, стиль и другие неявные факторы фильма с помощью Spark. - Гибридная запись Система
Соревнование, в котором вы должны получить лучший результат, используя вместе различные алгоритмы рекомендаций, включая алгоритмы Spark ML. - Рекомендации по телефильмам
Используя данные о просмотре телепередач от разных пользователей, создавайте рекомендации фильмов по подписке с помощью Spark ML.
Курс «Промышленное машинное обучение на Spark» — НИУ ВШЭ
https://cs.hse.ru/dpo/mlforindustry
Цена: 30 000 ₽
Курс по реальному 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
Знакомство со Спарком. Сравнение RDD и DataFrame. Реализация методов или вычислений в RDD и в DataFrame. Разработка инструментов: от функционального программирования с RDD до приемлемых и известных методов от Pandas до Spark DataFrame. - Расширенный SQL (+ определяемые пользователем функции pandas и т д.)
Усложнение методов анализа и обработки данных. Преобразования данных и реальные примеры. Сравнение методов. Анализ каждого метода: где и какой метод можно использовать. Инструменты и новые функции (Pandas UDF и другие). Настройки (конфигурация Spark). - Spark ML/Spark TimeSeries
Машинное обучение для решения задач анализа временных рядов. - Расширенные проверки качества машинного обучения и моделей
Свяжите библиотеки Java Xgboost и Catboost со Spark. Разработка качества модели на основе результатов обучения моделей регрессии и классификации. - Spark GraphX / Потоковая передача Spark
Постройте данные в Spark в библиотеке анализа социальных сетей. Трансляция в Spark. Использование данных в реальном времени. - Экосистема Spark (MLFlow, AirFlow, H2O AutoML)
Интеграция Spark с другими промышленными сервисами. Spark в MLFlow и AirFlow для автоматизации работы. Интеграция Spark в другие библиотеки и продукты (например, H2O). - Spark в архитектуре проекта / Spark CI/CD
Правильная архитектура Spark и работа с ней. Автоматизация (непрерывная интеграция) процесса разработки и интеграции кода в готовый продукт. Структура проекта Spark и «что еще можно изменить в Spark», чтобы ускорить или упростить работу.
Документ об успешном завершении обучения.