Предварительные требования
Прежде чем начать, убедитесь, что у вас есть необходимые знания и инструменты.
Обязательные знания
Python (уверенный уровень)
Курс использует PySpark — Python API для Spark. Вам потребуется:
- Работа с коллекциями:
list,dict,set, list comprehensions - Функции, lambda-выражения, декораторы
- Модули
typing,dataclasses,collections - Базовое понимание pandas DataFrame (полезно, но не обязательно)
Если вы знаете pandas — PySpark DataFrame API покажется знакомым. Ключевое отличие: PySpark использует ленивые вычисления (lazy evaluation) и распределённое выполнение.
SQL (средний уровень)
Spark SQL — одна из основных тем курса:
- SELECT, WHERE, GROUP BY, HAVING, ORDER BY
- JOIN-ы: INNER, LEFT, RIGHT, FULL OUTER
- Оконные функции: ROW_NUMBER, RANK, LAG, LEAD
- Подзапросы и CTE (WITH)
- Агрегатные функции и GROUP BY с несколькими колонками
Основы распределённых систем
Не обязательно быть экспертом, но полезно понимать:
- Что такое кластер, node, master/worker
- Зачем нужна репликация и партиционирование данных
- Концепция MapReduce (хотя бы на верхнем уровне)
- Что такое сериализация/десериализация
Рекомендуемое окружение
Docker Desktop (обязательно для лабораторий)
Docker-лаборатории — практическая часть курса, где вы работаете с реальным Spark-кластером:
# Проверьте установку
docker --version # Docker 24.0+
docker compose version # Compose v2.20+
Для лабораторий требуется минимум 8 GB RAM, выделенных Docker.
Python 3.9+ (для code challenges)
Code challenges выполняются в браузере через spark_sim, но для локальных экспериментов:
python3 --version # Python 3.9+
pip install pyspark # PySpark 3.5+
IDE или редактор
Любой редактор с поддержкой Python:
- VS Code с расширением Python — рекомендуемый вариант
- PyCharm — Professional Edition имеет встроенную поддержку PySpark
- Jupyter Notebook — для интерактивных экспериментов
Опциональные знания (полезно, но не обязательно)
JVM basics
Модули M01-M02 (Architecture, Catalyst/Tungsten) затрагивают JVM internals:
- Heap vs off-heap memory
- Garbage Collection (GC) — что это и почему влияет на производительность
- JIT-компиляция
Не переживайте — курс объясняет всё необходимое по ходу, но знакомство с JVM сэкономит время.
Hadoop ecosystem
Полезно, но не обязательно:
- HDFS — распределённая файловая система
- YARN — менеджер ресурсов кластера
- Hive — SQL-интерфейс к данным на HDFS
Spark изначально был частью Hadoop-экосистемы, но сейчас работает независимо (standalone, Kubernetes, Mesos).
Готовы начать?
Если вы уверены в Python и SQL — переходите к M01: Архитектура и внутреннее устройство Spark. Это первый содержательный модуль, который заложит фундамент для всего курса.
System Design: Spark в архитектуре data-platform