Курс на Stepik
Обложка курса «Apache Spark на Scala» на Stepik
800 ₽

Apache Spark на Scala ★ 5.000

Открыть на
STEPIK.ORG

Практический курс по Apache Spark 3.5 на Scala для дата-инженеров: от архитектуры Spark и DataFrame API до Spark SQL, shuffle, join, Structured Streaming, оптимизации и итогового ETL-проекта.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Apache Spark на Scala»Учеников на курсе 59
Сертификаты, выданные на курсе «Apache Spark на Scala»Сертификатов выдано 0
Отзывы о курсе «Apache Spark на Scala»Отзывов получено 1
Рейтинг курса «Apache Spark на Scala»Рейтинг курса 5.000
Уроки в курсе «Apache Spark на Scala»Количество уроков 130
Тесты в курсе «Apache Spark на Scala»Количество квизов 646
Время прохождения курса «Apache Spark на Scala»Время прохождения курса —
Стоимость курса «Apache Spark на Scala»Стоимость курса 800 ₽ —
Обновления курса «Apache Spark на Scala»Обновления курса — —
Дата публикации курса «Apache Spark на Scala»Дата публикации курса — ———
Последнее обновление курса «Apache Spark на Scala»Последнее обновление — ———

Содержание курса

Разделы в курсе «Apache Spark на Scala» 20 разделов Уроки в курсе «Apache Spark на Scala» 130 уроков Тесты в курсе «Apache Spark на Scala» 646 тестов Время прохождения курса «Apache Spark на Scala» 2 ч. Последнее обновление курса «Apache Spark на Scala» обн. 14 июля 2026

Модуль 1. Большие данные и Apache Spark

7 уроков
1. О курсе: как проходить обучение и канал «Логово Дата-Инженера» ↗
2. Проблема больших данных: почему один компьютер не справляется ↗
3. От MapReduce и Hadoop к Spark: что изменил Spark ↗
4. Архитектура Spark: Driver, Executors и Cluster Manager ↗
5. Модель вычислений: распределённость, партиции, параллелизм ↗
6. Экосистема Spark: SQL, Streaming, MLlib, GraphX ↗
7. Ленивость и DAG: трансформации против действий — обзор ↗

Модуль 2. Окружение и первое приложение

7 уроков
1. Установка Spark локально и зависимости от Java ↗
2. spark-shell: интерактивная работа со Spark ↗
3. SparkSession и SparkContext: точки входа ↗
4. Первый sbt-проект со Spark и его зависимости ↗
5. Запуск приложения локально в режиме local ↗
6. Знакомство со Spark UI: что и где смотреть ↗
7. Логи Spark: как читать и настраивать уровень ↗

Модуль 3. RDD — фундамент Spark

7 уроков
1. Что такое RDD: неизменяемость, партиции, происхождение (lineage) ↗
2. Создание RDD: parallelize и textFile ↗
3. Трансформации RDD: map, filter, flatMap ↗
4. Действия RDD: collect, count, take, reduce, foreach ↗
5. Ленивость на практике: что и когда выполняется ↗
6. Партиции RDD: что это такое и сколько их ↗
7. Кэширование RDD: cache, persist и уровни хранения ↗

Модуль 4. RDD глубже: пары ключ-значение

9 уроков
1. Pair RDD: создание и смысл пар ключ-значение ↗
2. reduceByKey и groupByKey: почему первый предпочтительнее ↗
3. aggregateByKey и combineByKey ↗
4. Объединения на RDD: join и cogroup ↗
5. sortByKey, keys, values и mapValues ↗
6. Что такое shuffle и почему он дорогой ↗
7. Broadcast-переменные ↗
8. Аккумуляторы (accumulators) ↗
9. Когда RDD всё ещё нужны, а когда выбрать DataFrame ↗

Модуль 5. DataFrame и Spark SQL — основы

7 уроков
1. Зачем нужен DataFrame поверх RDD и что такое Catalyst ↗
2. DataFrame, строка Row и схема StructType ↗
3. Создание DataFrame из коллекций и из файлов ↗
4. Осмотр данных: printSchema, show и описательная статистика ↗
5. Задание схемы вручную и типы данных Spark SQL ↗
6. Чтение CSV: опции header, inferSchema, разделители ↗
7. Чтение JSON и вложенные структуры ↗

Модуль 6. Операции с DataFrame: Column API

10 уроков
1. select и способы ссылаться на колонку: col, $, апострофы ↗
2. Выражения над колонками: арифметика и псевдонимы alias ↗
3. Фильтрация filter и where, логические условия ↗
4. withColumn, withColumnRenamed и drop ↗
5. Литералы lit и условные колонки when/otherwise ↗
6. Строковые функции: concat, substring, lower, regexp и другие ↗
7. Числовые функции и округление ↗
8. Дата и время в Spark SQL ↗
9. Обработка null: isNull, na.fill, na.drop, coalesce ↗
10. distinct, dropDuplicates, sample и limit ↗

Модуль 7. Агрегации и группировки

6 уроков
1. Агрегатные функции: count, sum, avg, min, max ↗
2. groupBy и agg: несколько агрегатов сразу ↗
3. Агрегация по всему DataFrame без группировки ↗
4. collect_list, collect_set и именованные агрегаты ↗
5. Сводные таблицы через pivot ↗
6. Сортировка результатов: orderBy, asc/desc, nulls first/last ↗

Модуль 8. Объединения данных (Joins)

6 уроков
1. Типы join: inner, left, right, full, semi, anti ↗
2. Синтаксис join в DataFrame API ↗
3. Дубликаты колонок после join и как их избежать ↗
4. Broadcast join: ускоряем соединение с маленькой таблицей ↗
5. Перекос данных (skew) при join и борьба с ним ↗
6. Cross join и его опасности ↗

Модуль 9. Spark SQL: язык запросов

6 уроков
1. Временные представления: createOrReplaceTempView ↗
2. Запросы через spark.sql ↗
3. SQL против DataFrame API: что и когда выбрать ↗
4. Каталог Catalog, базы данных и таблицы ↗
5. SQL-функции и выражения, функция expr ↗
6. Подзапросы и обобщённые табличные выражения (CTE) ↗

Модуль 10. Dataset и типобезопасность

6 уроков
1. Зачем нужен Dataset поверх DataFrame ↗
2. Dataset[T], case-классы и Encoders ↗
3. Типобезопасные операции: map, filter, flatMap на Dataset ↗
4. DataFrame как Dataset[Row] и конвертация через .as[T] ↗
5. groupByKey и типобезопасные агрегации ↗
6. Цена типобезопасности: сериализация и производительность ↗

Модуль 11. Источники данных и форматы

8 уроков
1. Единый API чтения и записи: format, option, save ↗
2. Parquet: колоночный формат и почему он по умолчанию ↗
3. ORC и сравнение форматов хранения ↗
4. Режимы записи SaveMode: append, overwrite и другие ↗
5. Партиционирование при записи (partitionBy) ↗
6. Bucketing: предварительная раскладка по корзинам ↗
7. JDBC: чтение и запись в реляционные базы данных ↗
8. Чтение множества файлов и автоопределение партиций ↗

Модуль 12. Оконные функции

6 уроков
1. Зачем нужны оконные функции. Идея Window ↗
2. Window.partitionBy и orderBy ↗
3. Ранжирование: row_number, rank, dense_rank ↗
4. Агрегаты в окне: sum и avg поверх окна ↗
5. Функции lag, lead, first, last ↗
6. Рамки окна: rowsBetween и rangeBetween ↗

Модуль 13. Сложные типы и пользовательские функции

6 уроков
1. Сложные типы: array, map и struct ↗
2. Функции для массивов: explode, array_contains и другие ↗
3. Функции высшего порядка в Spark SQL: transform, filter… ↗
4. UDF: когда они нужны, регистрация и использование ↗
5. Производительность UDF против встроенных функций ↗
6. Типобезопасные агрегаторы UDAF (Aggregator) ↗

Модуль 14. Внутреннее устройство и оптимизация

6 уроков
1. Catalyst: логический и физический планы запроса ↗
2. Метод explain и чтение планов выполнения ↗
3. Tungsten, кодогенерация и бинарное представление данных ↗
4. Узкие и широкие зависимости, stages и tasks ↗
5. Adaptive Query Execution (AQE) ↗
6. Кэширование как инструмент оптимизации ↗

Модуль 15. Тюнинг производительности

6 уроков
1. Партиции: repartition против coalesce ↗
2. Число партиций shuffle: spark.sql.shuffle.partitions ↗
3. Память executors, spill на диск и диагностика OOM ↗
4. Борьба с перекосом данных: соль и broadcast ↗
5. Сериализация Kryo, broadcast и лучшие практики ↗
6. Чтение Spark UI для поиска узких мест ↗

Модуль 16. Структурированный стриминг

8 уроков
1. Идея Structured Streaming: поток как бесконечная таблица ↗
2. Источники: файлы, сокеты и Kafka ↗
3. Режимы вывода: append, update, complete ↗
4. Триггеры и микробатчи ↗
5. Оконные агрегации по времени события ↗
6. Watermark и обработка поздних данных ↗
7. Состояние, checkpoint и отказоустойчивость ↗
8. Запись в приёмники и foreachBatch ↗

Модуль 17. Развёртывание и эксплуатация

6 уроков
1. spark-submit: ключи и режимы client и cluster ↗
2. Менеджеры кластера: YARN, Kubernetes, Standalone — обзор ↗
3. Конфигурация Spark и приоритеты настроек ↗
4. Сборка приложения и доставка зависимостей на кластер ↗
5. Мониторинг и логирование в проде. History Server ↗
6. Отладка падений: типичные ошибки и как их читать ↗

Модуль 18. Озёра данных и форматы таблиц

3 урока
1. Проблемы голого Parquet в озере данных ↗
2. Delta Lake: ACID, time travel и операция MERGE ↗
3. Apache Iceberg и Hudi: краткое сравнение ↗

Модуль 19. Продакшн-практики и тестирование

5 уроков
1. Тестирование Spark-приложений: локальная сессия и фикстуры ↗
2. Качество данных: проверки, ассерты и метрики ↗
3. Идемпотентность и безопасные перезапуски пайплайнов ↗
4. Организация кода Spark-проекта: конфиги и параметры ↗
5. Антипаттерны и чек-лист код-ревью Spark ↗

Модуль 20. Итоговый проект: end-to-end ETL

5 уроков
1. Постановка задачи: пакетный ETL-пайплайн ↗
2. Слои данных: raw, cleansed, curated (архитектура медальон) ↗
3. Реализация трансформаций и агрегаций ↗
4. Тесты, запуск и оптимизация пайплайна ↗
5. Дорожная карта сеньора дата-инженера: что дальше ↗