Apache Spark выпустил релиз 4.1 Если 4.0 было страшно использовать, то 4.1 уже вполне. Ключевые обновления __1. Spark Declarative Pipelines (SDP) Новый декларативный фреймворк, который позволяет разработчикам определять наборы данных и запросы, а Spark автоматически управляет: • Графом выполнения и порядком зависимостей • Параллелизмом, контрольными точками и повторными попытками • Поддержка Python, SQL и Spark Connect API 2. Real-Time Mode (RTM) в Structured Streaming Первая официальная поддержка режима реального времени для непрерывной обработки с задержкой менее секунды: • Задержка p99 в диапазоне единиц миллисекунд для задач без сохранения состояния • Поддержка Kafka источников и приёмников • Активируется простым изменением конфигурации без переписывания кода 3. Улучшения PySpark Arrow-нативные UDF и UDTF: • Новые декораторы ⁠____@arrow_udf____ и ⁠____@arrow_udtf____ для эффективного выполнения без накладных расходов на конвертацию Pandas • Прямая работа с объектами PyArrow для векторизованной обработки Python Worker Logging: • Захват логов UDF через встроенную табличную функцию • Упрощённая отладка Python функций Filter Pushdown для Python Data Sources: • Уменьшение перемещения данных за счёт обработки фильтров на уровне источника 4. Spark Connect • Spark ML теперь GA для Python клиента • Интеллектуальное кэширование моделей и управление памятью • Сжатие планов выполнения protobuf с использованием zstd • Потоковая передача результатов Arrow порциями • Снято ограничение в 2 ГБ для локальных отношений 5. Улучшения SQL SQL Scripting (GA): • Включён по умолчанию • Поддержка циклов, условных операторов и обработчиков ошибок • Новый синтаксис ⁠CONTINUE HANDLER и многопеременное объявление ⁠DECLARE VARIANT Data Type (GA): • Стандартизированное хранение полуструктурированных данных (JSON) • Shredding для оптимизации чтения: ▪ В 8 раз быстрее по сравнению со стандартным VARIANT ▪ В 30 раз быстрее по сравнению с JSON-строками Recursive CTE: • Поддержка рекурсивных общих табличных выражений для обхода иерархических структур Новые аппроксимационные скетчи: • KLL (для квантилей) и Theta скетчи для эффективных операций над множествами Производительность • Режим реального времени обеспечивает улучшение задержки на порядки величин • VARIANT с shredding: 8-30x ускорение чтения (с компромиссом 20-50% замедления записи)__