⚡️ Вышел Apache Spark 4.0. Что интересного в релизе:
1️⃣ Новая архитектура клиент-сервер
Spark Connect. Теперь клиентское приложение отделено от кластера Spark. Это значит, что подключаться к Spark можно будет из любой среды и ЯП, включая Python, Scala, Go, Swift и Rust. Кстати, клиент для Python весит всего 1,5 МБ и устанавливается просто через
pip install pyspark-connect
.
2️⃣ Режим
ANSI SQL по умолчанию. Раньше Spark прощал многие ошибки – например, если ты делил на ноль или числа не влезали в столбец, он просто возвращал
NULL
или тихо обрезал значение. Это было удобно, но могло скрывать баги. Теперь включён режим ANSI SQL по умолчанию – как в классических базах данных. Если в запросе ошибка, Spark сразу об этом скажет и выбросит ошибку. Получается более надежно и предсказуемо.
3️⃣ Materialized Views. Это сохранённый результат SQL-запроса, который может автоматически использоваться при выполнении будущих запросов, если Spark понимает, что часть запроса уже была вычислена и закеширована. То есть теперь повторяющиеся запросы не надо каждый раз пересчитывать, можно просто достать из кэша. Супер существенно для времени и нагрузки на кластер.
4️⃣ Python Data Source API. Это прямо очень приятно: теперь не надо учить Scala, чтобы подключиться к кастомному источнику данных, все можно сделать просто на питоне. Это сильно упрощает интеграцию Spark с веб-сервисами, файлами, базами данных и вообще чем угодно.
5️⃣ Новый тип данных VARIANT. Это специально для полуструктурированных данных. То есть теперь, если у вас где-то лежат вложенные поля или JSON, запросы к ним можно выполнять прямо из коробки, предварительно не описывая схему.
Официальный релиз