Spark Connect и режимы запуска: local, cluster, Kubernetes
Исторически клиент Spark был неотделим от драйвера: ваш Python-процесс запускал JVM, и любая зависимость приложения должна была совпадать с зависимостями кластера. Spark Connect разрывает эту связь: клиент строит план и передаёт его серверу по gRPC, а выполняет всё сервер. Отсюда лёгкий клиент pyspark-client размером около полутора мегабайт без JVM, возможность подключаться из ноутбука и IDE, независимость версий библиотек на клиенте и на кластере, а также устойчивость к падению клиента. Начиная с Spark 4 режим переключается конфигурацией spark.api.mode. Режимы развёртывания при этом отдельная ось: local[n] для разработки; client — драйвер там, откуда запустили (удобно для интерактива, но требует сетевой доступности с исполнителей); cluster — драйвер внутри кластера (правильный вариант для промышленных задач); на Kubernetes к этому добавляются образ исполнителя, service account и динамическое выделение ресурсов через shuffle tracking.