feat(course): add SparkSession setup practice to module 3
This commit is contained in:
1 parent
00942c255f
commit
7c5e976405
10 files changed
+523
-22
No files matched your search
+16
-2
@@ -10,6 +10,8 @@
|
||||
|
||||
**Ориентир на модуль:** в среднем `~1.5 часа`, но финальная практика может занять дольше.
|
||||
|
||||
В модуле 3 дополнительно предусмотрены 20–30 минут на настройку Spark-сессии; ориентир на весь модуль — около 2 часов. Общие `~12-15 часов` пока остаются предварительной оценкой: её нужно уточнить после самостоятельного прохождения студентом.
|
||||
|
||||
**Сквозной учебный кейс:** `NYC TLC Yellow Taxi Trip Records` + `Taxi Zone Lookup`.
|
||||
|
||||
**Методика каждого урока:** `объяснение -> демонстрация -> самостоятельное повторение -> checkpoint`.
|
||||
@@ -74,6 +76,7 @@
|
||||
| `LO5`. Умение собрать поток `raw -> bronze -> silver` | 4, 5, 8 | checkpoints модулей 5 и 8 |
|
||||
| `LO6`. Умение читать одну таблицу из `Spark` и `Trino` | 6, 8 | checkpoint модуля 6 и финальная практика |
|
||||
| `LO7`. Умение выполнять безопасные операции с таблицей | 7, 8 | checkpoints модулей 7 и 8 |
|
||||
| `LO8`. Умение настроить Spark-сессию и проверить подключение | 3 | checkpoint практики настройки в начале модуля 3 |
|
||||
|
||||
## 5. Верхнеуровневая структура практической части
|
||||
|
||||
@@ -124,10 +127,15 @@
|
||||
|
||||
**Рабочее название ноутбука:** `03_raw_ingest_and_first_read.ipynb`
|
||||
|
||||
**Зачем нужен:** показать, как raw-данные попадают в стенд и как с ними безопасно начать работать.
|
||||
**Зачем нужен:** научить создавать Spark-сессию для нашего кластера, затем загружать и читать raw-данные.
|
||||
|
||||
**Содержание:**
|
||||
|
||||
* обязательная практика «Как настроен Spark в нашем стенде» после ментальной модели модуля 2, до raw-ingest (20–30 минут);
|
||||
* роли `SparkSession`, `SparkContext`, driver и executors; `master`, `appName`, `getOrCreate`, отличие `local` от кластера;
|
||||
* настройки из `spark-defaults.conf`, параметров запуска и кода; подготовленный каталог Iceberg и доступ к MinIO;
|
||||
* проверка фактического master и выбранных несекретных настроек; повторная ячейка, остановка сессии и перезапуск ядра;
|
||||
* изменение часового пояса с восстановлением исходного значения и смена имени приложения при новом запуске; без подбора памяти, executors, shuffle или GC;
|
||||
* работа с заранее подготовленным локальным data bundle из onboarding-документации;
|
||||
* явная загрузка исходных `PARQUET`-файлов в raw-зону;
|
||||
* чтение raw-данных через Spark;
|
||||
@@ -136,13 +144,18 @@
|
||||
|
||||
**Практика студента:**
|
||||
|
||||
* выполнить демонстрацию настройки сессии, затем заполнить шаблон с адресом кластера и именем приложения, используя подготовленный каталог;
|
||||
* проверить подключение на собственной маленькой Iceberg-таблице, прочитать две строки и удалить только эту таблицу; данные модуля 2 не нужны;
|
||||
* объяснить происхождение настроек и повторить создание сессии после перезапуска ядра;
|
||||
* проверить состав локально полученного набора `NYC Taxi`;
|
||||
* загрузить его в raw-зону `MinIO`;
|
||||
* прочитать несколько месяцев `NYC Taxi`;
|
||||
* проверить схему и посчитать базовые метрики;
|
||||
* найти простые аномалии или проблемные значения.
|
||||
|
||||
**Checkpoint:** студент умеет загрузить учебный набор в raw-зону, прочитать raw-данные, проверить схему и объяснить, почему raw-слой нужен как воспроизводимая точка входа.
|
||||
**Checkpoint настройки:** master равен `spark://spark-master:7077`, имя приложения совпадает с заданным, из собственной Iceberg-таблицы прочитаны строки `0` и `1`, временная таблица удалена. Часовой пояс восстановлен. Студент объясняет, что задал в коде, что взял из стенда, где выполняются вычисления и какие ячейки повторит после перезапуска ядра.
|
||||
|
||||
**Checkpoint raw-ingest:** студент умеет загрузить учебный набор в raw-зону, прочитать raw-данные, проверить схему и объяснить, почему raw-слой нужен как воспроизводимая точка входа.
|
||||
|
||||
### Модуль 4. Первая рабочая Iceberg-таблица и слой bronze
|
||||
|
||||
@@ -261,6 +274,7 @@
|
||||
5. Умеет построить простой поток `raw -> bronze -> silver`.
|
||||
6. Умеет читать одну и ту же таблицу из `Spark` и `Trino`.
|
||||
7. Умеет выполнять базовые безопасные операции: schema evolution, snapshots/time travel, compaction, vacuum.
|
||||
8. Создаёт Spark-сессию для кластера, проверяет настройки и понимает, когда нужен новый запуск.
|
||||
|
||||
## 7. Что не входит в первую версию курса
|
||||
|
||||
|
||||
Reference in new issue
Block a user