Содержание курса
Модуль 0. Зачем аналитику PySpark — и когда он НЕ нужен
6 уроков
1.
Кому этот курс и что вы будете уметь
↗
2.
Честная карта: pandas / Polars / DuckDB / Spark
↗
3.
Первая победа: PySpark в Colab за 10 минут
↗
4.
Как решать задачи курса: датасет → Colab → ответ
↗
5.
Практикум: посчитай выручку
↗
6.
Что нового в Spark 4.1 (2026)
↗
Модуль 1. Как Spark думает: архитектура, ленивость, DAG
11 уроков
1.
Драйвер и экзекьюторы
↗
2.
Трансформации против действий и ленивость
↗
3.
DAG и первый explain()
↗
4.
SparkSession и Spark Connect
↗
5.
Джобы, стадии и задачи — модель исполнения
↗
6.
Catalyst и Tungsten: оптимизация и исполнение
↗
7.
RDD, DataFrame и Dataset — что выбрать
↗
8.
Проверь себя: как Spark думает
↗
9.
Жизненный цикл запроса: от кода до задач
↗
10.
Практикум: реализуй алгоритм
↗
11.
Spark Connect на практике
↗
Модуль 2. От pandas и SQL к Spark DataFrame
7 уроков
1.
Пять отличий Spark DataFrame от pandas
↗
2.
Базовые операции и выражения
↗
3.
pandas API on Spark и ловушка одной партиции
↗
4.
Null-семантика и трёхзначная логика
↗
5.
Отладка PySpark: как искать причину
↗
6.
Практикум: считаем сегменты
↗
7.
Мост: pandas → Spark → SQL наглядно
↗
Модуль 3. Правильное чтение и запись данных на масштабе
14 уроков
1.
inferSchema и явные схемы
↗
2.
Форматы хранения и запись
↗
3.
ANSI-режим Spark 4.0
↗
4.
Партиционирование при записи: как выбрать ключ
↗
5.
Внутри Parquet: почему он такой быстрый
↗
6.
Типы, время и таймзоны
↗
7.
Delta Lake: транзакции поверх файлов
↗
8.
Bucketing против партиционирования
↗
9.
Чтение из облака: S3, ADLS, GCS
↗
10.
Проверь себя: чтение и форматы
↗
11.
Практикум: средний чек (SQL)
↗
12.
Актуальное: VARIANT и shredding
↗
13.
Форматы таблиц: Delta, Iceberg, Unity Catalog
↗
14.
Даты и время: то, что аналитик делает каждый день
↗
Модуль 4. Джойны, агрегации и оконные функции
15 уроков
1.
Джойны и broadcast
↗
2.
Оконные функции
↗
3.
Многомерный анализ: cube, rollup
↗
4.
Практикум: бизнес-метрики и Spark SQL
↗
5.
Механика shuffle изнутри
↗
6.
Стратегии джойнов: как Spark выбирает
↗
7.
Оконные функции: рамки и цена
↗
8.
Практикум: перцентили и топ-1
↗
9.
Решейпинг: pivot, unpivot и explode
↗
10.
Практикум: агрегаты и джойн
↗
11.
Проверь себя: джойны, окна, агрегации
↗
12.
Как данные текут: узкое, широкое, запись
↗
13.
Рамки окна наглядно
↗
14.
Полу- и анти-джойны: заказы без юзера и кто купил
↗
15.
Массивы: collect_list, collect_set и explode
↗
Модуль 5. Data Quality на миллионах строк
10 уроков
1.
Дубликаты и Null-аудит одним проходом
↗
2.
Приближённые алгоритмы для терабайтов
↗
3.
Валидация форматов и правил
↗
4.
Практикум: воронка и дубликаты
↗
5.
Внутри приближённых алгоритмов
↗
6.
Практикум: DQ-метрики
↗
7.
Практикум: уникальность и мода
↗
8.
Актуальное: скетчи данных (KLL, Theta)
↗
9.
DQ-скоркарта наглядно
↗
10.
Регулярки в Spark: валидация и чистка одной строкой
↗
Модуль 6. Производительность: как не сломать кластер
19 уроков
1.
Читаем план и понимаем Catalyst
↗
2.
OOM: collect() и toPandas()
↗
3.
Перекос данных (Data Skew) — флагман
↗
4.
AQE и кэширование
↗
5.
Память executor и sizing
↗
6.
Практикум: находим тяжёлого пользователя
↗
7.
Модель памяти executor: execution vs storage, spill, GC
↗
8.
spark-submit и режимы развёртывания (как в бигтехе)
↗
9.
Читаем Spark UI как senior
↗
10.
Уровни персистентности: какой cache выбрать
↗
11.
repartition, coalesce и repartitionByRange
↗
12.
Broadcast-переменные и аккумуляторы
↗
13.
Cost-Based Optimizer и статистики
↗
14.
Практикум: сессии и активность
↗
15.
Тестирование PySpark-кода
↗
16.
Шпаргалка оптимизации: чек-лист senior
↗
17.
Проверь себя: производительность и OOM
↗
18.
Карта диагностики: симптом → причина → лечение
↗
19.
Сегментация: ntile и перцентили (квартили, децили)
↗
Модуль 7. Сложные типы и UDF без потери скорости
8 уроков
1.
Почему обычные Python UDF — зло
↗
2.
Pandas UDF и Arrow-UDF
↗
3.
Функции высшего порядка на массивах
↗
4.
Как выбрать и измерить UDF
↗
5.
Внутри UDF: сериализация и Arrow
↗
6.
Проверь себя: UDF и типы
↗
7.
Практикум: массивы своими руками
↗
8.
Актуальное: Arrow-native UDF (4.1)
↗
Модуль 8. Spark SQL, BI и капстоун
9 уроков
1.
Spark SQL для ad-hoc
↗
2.
BI и отдача результатов
↗
3.
Капстоун: аналитический пайплайн
↗
4.
Практикум: Spark SQL с джойном
↗
5.
Структурированный стриминг для аналитика (обзор)
↗
6.
Практикум: анти-джойн и накопительный итог (SQL)
↗
7.
Практикум: бакетирование через CASE
↗
8.
Практикум: уникальные пользователи (SQL)
↗
9.
Актуальное: pipe-синтаксис |> и SQL Scripting
↗