
Spark Connect заставляет Pyspark Play Neecing с ноутбуками, IDE и веб -приложениями
2 июля 2025 г.Apache Spark была популярным выбором для крупномасштабной распределенной обработки данных. Однако по мере того, как команды данных переходят в облачные архитектуры и отдельные вычисления из клиентских интерфейсов, традиционная модель жестко связанного драйвера Spark начала раскрывать свои ограничения. В этой статье мы рассмотрим новую функцию Spark Connect, будущее удаленного выполнения.
Что такое Spark Connect?
Spark Connectявляется аОтдельный протокол клиентского сервераЭто позволяет зажигать клиентов, такие как приложения Python или Java, взаимодействовать с процессом драйвера Spark по сети. В отличие от традиционных приложений Spark, где клиент запускает и управляет драйвером, Spark Connect используетПротокол на основе GRPCобщаться сЗапуск сервера Spark ConnectПолем Думать об этом какСкраиться как услугаДля ваших приложений данных и ноутбуков.
Spark Connectвведен вSpark 3.4и еще больше улучшился3.5Полем Он меняет то, как клиенты подключаются к кластеру Spark и взаимодействуют, обеспечивая большую гибкость, масштабируемость и языковую поддержку.
- Spark Connectявляетсяне менеджер кластеровПолем ЭтопротоколЭто позволяет клиентам общаться с драйвером Sparkудаленно, все еще используя традиционные режимы кластера внизу (какПряжаилиKubernetes)
- Spark ConnectпроизводитРазработка на стороне клиента прощеи идеально подходит для интеграции Spark в такие инструменты, какVSCODEВЮпитер, иливеб -приложенияПолем
- Отделить клиента отSpark ClusterОблегчает обновление и масштабирование кластера отдельно от клиента. Этот подход удаляетсязависимостьконфликтыи предлагает большую гибкость в языковой поддержке.
Почему Spark Connect?
Перед Spark Connect, запуск приложения Spark означалОбъедините драйвер Spark с логикой клиента.Это привело кдолгое время запуска,конфликты зависимости,иПлохая интеграция IDE.Это было также трудно использоватьинтерактивные ноутбуки или мобильные/веб-интерфейсыс бэкэнд искры.
СSpark Connect, клиенты естьлегкий веси нужна только совместимая клиентская библиотека. Вы можете внедрить искру внутриVscode, Nopyter Notebooks, веб -приложения и мобильные приложенияПолем Эта настройка обеспечивает более легкое масштабирование и более быстрое итерацию.
Как работает Spark Connect?
- Соединение устанавливается между клиентом и сервером Spark.
- Клиент конвертируетDataFrameзапрос внеразрешенный логический план, который описывает, что должна делать операция, а не то, как она должна быть выполнена.
- Анеразрешенный логический планявляетсякодируетсяи отправлено на сервер Spark.
- Spark ServerоптимизируетивыполняетЗапрос.
- Сервер Spark отправляетрезультатыВернуться к клиенту.
Практический пример: использование Spark Connect с pyspark
Шаг 1: запустите сервер Spark Connect
# This launches the Spark Connect endpoint
$ ./bin/spark-connect-server
Шаг 2: Подключите от клиента Python
from pyspark.sql import SparkSession
# sc:// is the special URI scheme used for Spark Connect
spark = SparkSession.builder.remote("sc://localhost:<PORT>").getOrCreate()
df = spark.read.csv("example.csv", header=True)
df.groupBy("category").count().show()
Лучше всего для следующих вариантов использования
- Интерактивная наука данных:Используйте jupyter или vscode, чтобы удаленно запустить задание Spark
- CI/CD трубопроводы:Проверить задания в действиях GitHub или Gitlab CI
- Удаленные приложения данных:Построить API и панели мониторинга, работающих на Spark
- Многоактивные платформы:Обслуживать несколько пользователей через один бэкэнд Spark
Ограничения
- Spark Connectвсе еще ранние этапы, поэтому некоторые функции, такие как сложныеUDFSилиПотоковая передачаможет иметь ограниченную поддержку.
- Вам нужно обновить как минимум до 3,5+ для более стабильной версии.
- Мониторинг и отладка все еще развиваются для Spark Connect.
Spark Connect Alternatives
Spark Job ServerиАпач Ливиэто аналогичные проекты, которые подвергают Spark Works черезREST APIПолем Обычно используется для управления представлениями о вакансиях от внешних приложений, таких как панель мониторинга и ноутбуки, обеспечиваяудаленныйВзаимодействие с Spark. Тем не менее, это принципиально отличается от дизайна, вариантов использования и зрелости.
Особенность | Spark Connect | Spark Job Server | Апач Ливи |
---|---|---|---|
Тип | Встроенный протокол GRPC клиентского сервера | Внешний сервер API REST | Менеджер Spark Sesply на основе отдыха |
Официальный статус | ✅ Наземный для Apache Spark (3.4+) | ❌ Общественный проект (не официально поддерживается) | 🟡 Инкубация под Apache (неактивная с 2021 года) |
Поддержка языка клиента | Python, Scala, Java, Go, Rust, Dotnet | Только отдых, языковой | REST + Limited Scala/Python клиенты |
Архитектура | Легкие клиенты + драйвер Spark над GRPC | Внешний сервер + бегуны работы | Внешний сервис управление сессиями Spark Sessions |
Задержка / интерактивность | ⚡ Очень низкая задержка, интерактивная (DataFrame API) | Высокий (отправьте работу, статус опроса) | Средний |
Потоковая поддержка | ❌ Limited (в процессе) | ❌ Нет | 🟡 Частично (ограничено пакетным API) |
Государственные сессии | ✅ Stomestent Client Sparksession Sparksession | ✅ Да (контексты сервера заданий) | ✅ Да (Сессии Ливия) |
Аутентификация / безопасность | SSL/GRPC AUTH (Evolving) | Ручное или обычай | Kerberos, Hadoop-совместимый |
Простота развертывания | ✅ Легко с Spark 3.5+ | ❌ сложный, часто хрупкий | ❌ Текст, чтобы развернуть и масштабировать |
Вариант использования | Интерактивные приложения, ноутбуки, CI/CD | Специальная подача работы, панели мониторинга | Многопользовательские ноутбуки, доступ к отдыху |
Расширимость / техническое обслуживание | ✅ Активно развивался | ❌ Uncainded / Legacy | 🟡 устаревшая, низкая активность |
Заключение
- Spark Connectэто будущее отдаленного нативного взаимодействия. Он быстр и идеально подходит для разработчиков, ноутбуков и микро-сервисов.
- ЛивияиSpark Job Serverбыли временные решения до того, как Spark получила нативную поддержку клиентского сервера. Они хорошо работают для некоторых сценариев работы на основе работы на основе API, но теперь считаются устаревшими и не поддерживаются.
- Если вы начинаете новый проект, перейдите сSpark ConnectПолем Если вы поддерживаете более старую систему,Livy или Spark Job ServerВозможно, пока все еще полезен.
Оригинал