Курс на 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. Дорожная карта сеньора дата-инженера: что дальше