Learning Platform
Глоссарий Troubleshooting
Урок 01.03 · 5 мин
Начальный
PythonSQLDockerОкружение

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть необходимые знания и инструменты.


Обязательные знания

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

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3