feat(course): add SparkSession setup practice to module 3

This commit is contained in:
ddadmin committed 2026-09-15 09:01:41 -04:00
1 parent 00942c255f
commit 7c5e976405
10 files changed
+523 -22

No files matched your search

+21
View File
@@ -64,6 +64,27 @@ docker compose down -v
или настройки в файле, перезапусти ядро ноутбука и снова выполни ячейки
с импортами и созданием сессии.
Практика с объяснением, шаблоном и проверкой подключения находится в начале
[модуля 3](../notebooks/03_raw_ingest_and_first_read.ipynb).
В ней `spark.sparkContext.master` и `.appName` показывают фактический кластер
и имя приложения. Для SQL-настроек используется `spark.conf.get(...)`;
вывод ограничен конкретными несекретными ключами.
В Spark 3.5.1 `spark.sql.session.timeZone` можно менять через
`spark.conf.set(...)` во время работы, сохранив и восстановив исходное значение.
Повторный builder с другим `appName` использует прежний контекст и не меняет
его фактическое имя. После `spark.stop()` новый контекст получает новое имя;
при смене master или общего файла конфигурации перезапусти ядро.
`stop()` оставляет переменные Python, перезапуск ядра удаляет их.
Оба действия сохраняют таблицы в каталоге и файлы MinIO.
Параметры обычного нового приложения имеют приоритет: код → параметры
`spark-submit` → `spark-defaults.conf`. Настройки запуска driver-а нужно
передавать до его старта. Вне стенда также потребуются зависимости и конфигурация
Iceberg/S3A/JDBC из [`spark/Dockerfile`](../spark/Dockerfile) и общего файла.
Подробности: [конфигурация Spark 3.5.1](https://github.com/apache/spark/blob/v3.5.1/docs/configuration.md)
и [поведение SparkSession в этой версии](https://github.com/apache/spark/blob/v3.5.1/python/pyspark/sql/session.py).
Пример запуска smoke-скрипта:
```bash