Чему вы научитесь
- Запускать локальный Spark-стенд и работать с Jupyter notebooks.
- Читать CSV с заданной схемой, проверять ключи, типы, даты и NULL.
- Объяснять, когда Spark запускает вычисление и почему появляется shuffle.
- Читать физический план и находить в нём чтение, фильтр и Exchange.
- Связывать action в notebook с Job, Stage и Task в Spark UI.
- Проверять результат обработки на исходных строках и альтернативном входе.
- Находить место ошибки по сообщению, плану, UI и логам.
О курсе
Разберись со Spark и научись расследовать его инциденты
Job завершился успешно, а после join метрика выросла. Фильтр по дате есть, но Spark читает лишние файлы. Одна Task держит весь Stage, пока остальные уже закончили работу. В каждом случае нужно сначала понять, что произошло с данными и выполнением, а затем менять код.
Я делаю этот курс для такого разбора. Мы начнём с основ Spark, дойдём до физического плана и Spark UI, а затем применим эти знания к инженерным инцидентам. Опыт работы со Spark на входе не нужен: путь начинается с первого notebook и небольшого CSV.
Цель курса: научиться проходить полный диагностический маршрут. Воспроизвести симптом, собрать наблюдения, проверить гипотезу, исправить причину и повторным запуском убедиться, что результат верный.
Формат: подробные текстовые уроки Stepik и практика в Jupyter notebooks.
Стенд: локальный Spark-кластер с двумя Worker, JupyterLab и учебными данными.
Проверка: вопросы Stepik и локальные проверки кода, без ручной сдачи.
Вход: базовые Python и SQL; Spark и Jupyter разберём с начала.
Подробная программа, примеры уроков и устройство стенда есть на странице курса на моём сайте.
Как устроен маршрут
- Запустишь свой стенд. Клонируешь репозиторий стенда с GitHub по инструкции в уроке, поднимешь JupyterLab и Spark с двумя Worker, откроешь первый notebook. Инструкция по установке и типовым ошибкам лежит рядом со стендом.
- Освоишь обработку данных. Прочитаешь CSV с явной схемой, проверишь ключи и типы, разберёшь фильтры, даты,
NULL, агрегации и Spark SQL. Примеры небольшие, поэтому каждое изменение можно сверить с исходными строками. - Увидишь выполнение. Сопоставишь код с
explain("formatted")и Spark UI: найдёшьExchange, Jobs, Stages, Tasks, партиции, повторные вычисления и cache. - Перейдёшь к файлам и соединениям. В программе курса стоят Parquet, MinIO, отсечение лишних файлов, стратегии
joinи перекос данных. Здесь планы и метрики получат уже предметную задачу. - Проведёшь расследования. Лаборатории будут начинаться с симптома и проблемного job. Тебе предстоит найти причину, исправить решение и проверить его на повторном запуске и другом наборе данных.
Как выглядит практика
В Stepik ты читаешь подробные текстовые уроки, смотришь схемы и настоящие кадры Jupyter и Spark UI, затем отвечаешь на вопросы по конкретным ситуациям. К каждому уроку приложен Jupyter notebook. В нём короткие ячейки: сначала показанный опыт, затем действие, которое выполняешь ты. В технических уроках есть самостоятельные задачи A и B.
Представь лабораторию: после соединения таблиц число заказов стало больше ожидаемого. Ты проверяешь кратность ключей на входе, смотришь результат и план, меняешь обработку, затем сравниваешь строки до и после. В готовой лаборатории проверка запустит решение и на другом входе, поэтому заранее выписанные правильные числа не помогут.
Проверка устроена без ручной сдачи: вопросы Stepik проверяются на платформе, а код в notebook получает локальную обратную связь. Локальная проверка не отправляет решение на Stepik и не является защищённым платформенным зачётом.
Что останется после прохождения
После полного прохождения у тебя будет локальный стенд, набор notebook с выполненными опытами и понятный порядок действий при новом Spark-инциденте. Ты сможешь объяснить, какую работу запустил код, где перераспределились строки, что показывают план и UI, и чем подтверждается исправление.
Автор курса
Меня зовут Дмитрий Кузьмин. В 2025 году я стал номинантом Stepik Awards в категории «Лучшая система практических заданий». Для этого курса я сохраняю тот же принцип: в практической задаче есть исходные данные, самостоятельное действие и способ проверить результат.
Статус курса сейчас: локально подготовлены первые три модуля: запуск стенда, основы DataFrame, физический план и Spark UI. Блоки про файлы, join и расследования ещё разрабатываются. Они перечислены выше как программа курса, а не как уже открытые лаборатории.
Для кого этот курс
Как проходит обучение
Идёшь по урокам последовательно. Сначала читаешь подробный разбор в нескольких текстовых шагах Stepik, смотришь код, схему и реальные кадры из Jupyter или Spark UI. Затем отвечаешь на вопросы по наблюдаемому результату.
Notebook скачиваешь из вложения урока и открываешь в локальном JupyterLab. Ячейки короткие: перед новой операцией написано, что запустить и на что посмотреть. После показанного примера выполняешь самостоятельную задачу. В технических уроках есть части A и B; локальные проверки вызывают твоё решение на основном и другом входе.
Ответы на вопросы Stepik проверяются платформой. Проверки в notebook работают локально и не отправляют код на Stepik. Обязательных ручных сдач нет. Лаборатории с поломанными jobs станут следующим этапом после завершения и проверки их материалов.
Программа курса
В курс входят
- 37 уроков
- 70 тестов
Наши преподаватели
Что вы получаете
- ZIP локального Spark-стенда с инструкциями по установке, запуску и типовым ошибкам.
- Jupyter notebooks с показанными опытами, самостоятельными задачами и локальной проверкой.
- Фиксированные учебные CSV и воспроизводимые примеры для сравнения кода, плана и Spark UI.
- Подробные текстовые уроки, схемы, скриншоты и вопросы Stepik с автоматической проверкой.