Apache Spark 3.3.0: ТОП-10 новинок июльского релиза 2022

обучение Spark SQL примеры курсы обучение, анализ данных Spark, Spark разработка конфигурирование приложений для разработчика примеры курсы обучение, Spark app configs, конфигурация приложения Spark, Apache Spark разработчик примеры курсы обучение, обучение большим данным, курсы дата-инженер аналитик Big Data, Школа Больших Данных Учебный Центр Коммерсант

16 июня 2022 года вышла новая версия Apache Spark – 3.3.0. Разбираем главные фичи этого минорного релиза, особенно важные для дата-инженера и разработчика распределенных приложений: от расширения поддержки ANSI SQL до профилирования UDF на Python.

Главные изменения Apache Spark 3.3.0

Apache Spark 3.3.0 — это четвертый релиз линейки 3.x, в котором решено более 1600 запросов Jira на исправление ошибок, внесение улучшений и добавление новых фич. В частности, в этом выпуске улучшена производительность SQL-запросов c JOIN за счет фильтров Блума, расширен охват API Pandas, включая поддержку популярных функций этой Python-библиотеки, например, datetime.timedelta и merge_asof, упрощена миграция из традиционных хранилищ данных за счет улучшения соответствия стандарту ANSI SQL и поддержки десятков новых встроенных функций. Также повышена производительность разработки распределенных приложений благодаря улучшенной обработке ошибок, автодополнению, и профилированию данных.

Наиболее важными изменениями этого релиза можно назвать следующие:

  • Фильтрация среды выполнения на уровне строк для повышения производительности соединений больших таблиц за счет уменьшения объема перемешиваемых данных. Row-level Runtime Filtering используется при появлении широковещательного соединения, генерирует динамический фильтр на основе меньшей части данных и передает его в источник данных.
  • Усовершенствования ANSI для соответствия стандарту ANSI SQL. Это специальный режим для Spark SQL, который меняет диалект с Hive на совместимый с ANSI. Если для параметра sql.ansi.enabled установлено значение true, будет использоваться диалект, совместимый с ANSI, а не Hive. Поэтому теперь Spark SQL будет создавать исключения во время выполнения для недопустимых операций, включая ошибки целочисленного переполнения, синтаксического анализа строк и пр. фреймворк будет использовать различные типы правил принуждения для разрешения конфликтов между типами данных с учетом их приоритете.

  • Поддержка сложных типов для векторизованного считывателя Parquet, который ускоряет декодирование файла. Он используется по умолчанию для чтения Parquet-файлов и может быть изменен с помощью свойства sql.parquet.enableVectorizedReader. Чтобы включить сложные типы, нужно изменить значение параметра spark.sql.parquet.enableNestedColumnVectorizedReader на true. Это ускорит чтение Parquet-файлов с вложенными типами столбцов, такими как структура, массив и пр.
  • Поддержка метаданных скрытых файлов для Spark SQL через новый интерфейс, который позволяет пользователям запрашивать метаданные входных файлов для всех форматов файлов и отображать их как встроенные скрытые столбцы. Теперь пользователи могут видеть эти метаданные только тогда, когда явно ссылаются на них, например, в указании пути к файлу или его имени.
  • Профилировщик для пользовательских функций Python. В PySpark уже было профилирование, но только для RDD. Начиная с версии 3.3.0 можно использовать его в UDF. Профилирование не включено по умолчанию, поэтому следует установить для параметра python.profile значение true.
  • Представление Trigger.AvailableNow для выполнения потоковых запросов в нескольких пакетах. Параметр триггера описывает время обработки потоковых данных, будет ли запрос выполняться как микропакетный запрос с фиксированным пакетным интервалом или как запрос непрерывной обработки. Ранее потоковые запросы с Once всегда загружали все доступные данные в одном пакете. Но объем данных, которые могут обрабатывать запросы, ограничен, чтобы предотвратить OOM-ошибку на драйвере. Из-за этого был введен новый триггер под названием TRigger.AvailableNow.
  • Расширенные возможности push-down в DataSource V2 (DSV2) – механизме Spark SQL для доступа к данным из внешних источников. Помимо простого извлечения данных, он предлагает оптимизацию для ускорения передачи путем делегирования агрегатов самому источнику данных, сокращая сетевой ввод-вывод. Начиная с версии 3.3.0 доступны дополнительные возможности фильтрации, такие как push down top N к источнику данных JDBC V2, поддержка частичного агрегирования AVG и полной агрегированной загрузки DS V2.
  • Поддержка Executor Rolling и настраиваемых планировщиков Kubernetes. Spark в Kubernetes поддерживается, начиная с релиза 2.3 в 2017 году, а в 2021 году он получил статус общей доступности в версии 3.1.1. Сегодня производственные Spark-приложения очень часто разворачиваются в Kubernetes, который становится важным бэкендом управления ресурсами. С ростом количества заданий нужна возможность их расширенного планирования, организации очереди ресурсов, групповое планирование и пр. Ранее планировщик Kubernetes по умолчанию поддерживал только планирование на основе подов и не мог обеспечивать планирование на основе заданий для Spark-приложений. В версии 3.3.0 пользователи могут гибко настраивать планировщики Kubernetes.
  • Наконец, для улучшения информационной безопасности и ухода от рисков критической уязвимости библиотеки log4j 1, о чем мы писали здесь, выполнена миграция на 2-ю версию этого компонента логирования.

Читайте в нашей новой статье о том, как разработчики Databrics хотят улучшить Spark Structured Streaming в рамках нового проекта Lightspeed. А освоить администрирование и использование Apache Spark для задач дата-инженерии, разработки распределенных приложений и аналитики больших данных вам помогут специализированные курсы в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://spark.apache.org/releases/spark-release-3-3-0.html
  2. https://medium.com/@Datapotion/whats-new-in-apache-spark-3-3-0-667b4aaad69f
Поиск по сайту