Spark: от основ до расследования инцидентов

Курс по Spark с фокусом на инженерных инцидентах. Начнёшь с небольших CSV и практики в Jupyter, затем научишься читать физический план и Spark UI, связывать код с Jobs, Stages и Tasks. Лаборатории с поломанными jobs и диагностикой ошибок готовятся; первые три модуля подготовлены локально.
Начальный уровень

Чему вы научитесь

  • Запускать локальный 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 разберём с начала.

Подробная программа, примеры уроков и устройство стенда есть на странице курса на моём сайте.

 

Подробнее ↗

 

Как устроен маршрут

  1. Запустишь свой стенд. Клонируешь репозиторий стенда с GitHub по инструкции в уроке, поднимешь JupyterLab и Spark с двумя Worker, откроешь первый notebook. Инструкция по установке и типовым ошибкам лежит рядом со стендом.
  2. Освоишь обработку данных. Прочитаешь CSV с явной схемой, проверишь ключи и типы, разберёшь фильтры, даты, NULL, агрегации и Spark SQL. Примеры небольшие, поэтому каждое изменение можно сверить с исходными строками.
  3. Увидишь выполнение. Сопоставишь код с explain("formatted") и Spark UI: найдёшь Exchange, Jobs, Stages, Tasks, партиции, повторные вычисления и cache.
  4. Перейдёшь к файлам и соединениям. В программе курса стоят Parquet, MinIO, отсечение лишних файлов, стратегии join и перекос данных. Здесь планы и метрики получат уже предметную задачу.
  5. Проведёшь расследования. Лаборатории будут начинаться с симптома и проблемного job. Тебе предстоит найти причину, исправить решение и проверить его на повторном запуске и другом наборе данных.

Как выглядит практика

В Stepik ты читаешь подробные текстовые уроки, смотришь схемы и настоящие кадры Jupyter и Spark UI, затем отвечаешь на вопросы по конкретным ситуациям. К каждому уроку приложен Jupyter notebook. В нём короткие ячейки: сначала показанный опыт, затем действие, которое выполняешь ты. В технических уроках есть самостоятельные задачи A и B.

Представь лабораторию: после соединения таблиц число заказов стало больше ожидаемого. Ты проверяешь кратность ключей на входе, смотришь результат и план, меняешь обработку, затем сравниваешь строки до и после. В готовой лаборатории проверка запустит решение и на другом входе, поэтому заранее выписанные правильные числа не помогут.

Проверка устроена без ручной сдачи: вопросы Stepik проверяются на платформе, а код в notebook получает локальную обратную связь. Локальная проверка не отправляет решение на Stepik и не является защищённым платформенным зачётом.

Что останется после прохождения

После полного прохождения у тебя будет локальный стенд, набор notebook с выполненными опытами и понятный порядок действий при новом Spark-инциденте. Ты сможешь объяснить, какую работу запустил код, где перераспределились строки, что показывают план и UI, и чем подтверждается исправление.

Автор курса

Меня зовут Дмитрий Кузьмин. В 2025 году я стал номинантом Stepik Awards в категории «Лучшая система практических заданий». Для этого курса я сохраняю тот же принцип: в практической задаче есть исходные данные, самостоятельное действие и способ проверить результат.

Статус курса сейчас: локально подготовлены первые три модуля: запуск стенда, основы DataFrame, физический план и Spark UI. Блоки про файлы, join и расследования ещё разрабатываются. Они перечислены выше как программа курса, а не как уже открытые лаборатории.

Для кого этот курс

Для аналитика или SQL-разработчика, который начинает работать со Spark и хочет понимать, что происходит после запуска запроса. Для начинающего Data Engineer, которому нужна практика с DataFrame, физическим планом и Spark UI на собственном стенде. Для специалиста, который уже запускал Spark jobs, но пока разбирает медленные или неверные результаты без последовательной диагностики.

Как проходит обучение

Идёшь по урокам последовательно. Сначала читаешь подробный разбор в нескольких текстовых шагах Stepik, смотришь код, схему и реальные кадры из Jupyter или Spark UI. Затем отвечаешь на вопросы по наблюдаемому результату.

Notebook скачиваешь из вложения урока и открываешь в локальном JupyterLab. Ячейки короткие: перед новой операцией написано, что запустить и на что посмотреть. После показанного примера выполняешь самостоятельную задачу. В технических уроках есть части A и B; локальные проверки вызывают твоё решение на основном и другом входе.

Ответы на вопросы Stepik проверяются платформой. Проверки в notebook работают локально и не отправляют код на Stepik. Обязательных ручных сдач нет. Лаборатории с поломанными jobs станут следующим этапом после завершения и проверки их материалов.

Программа курса

В курс входят

  • 37 уроков
  • 70 тестов
загружаем...

Наши преподаватели

Что вы получаете

  • ZIP локального Spark-стенда с инструкциями по установке, запуску и типовым ошибкам.
  • Jupyter notebooks с показанными опытами, самостоятельными задачами и локальной проверкой.
  • Фиксированные учебные CSV и воспроизводимые примеры для сравнения кода, плана и Spark UI.
  • Подробные текстовые уроки, схемы, скриншоты и вопросы Stepik с автоматической проверкой.

Сколько стоит обучение

15 000 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям

15 000 ₽