Apache Spark 3.4.1: обзор отладочного релиза, выпущенного в июне 2023

Apache Spark 3.4.1: обзор отладочного релиза, выпущенного в июне 2023

23 июня 2023 года опубликован очередной релиз Apache Spark 3.4.1, который считается отладочным выпуском для предыдущего, содержащий исправления стабильности. Помимо исправления ошибок, в нем также 16 новых фичей и более 20 улучшений, самые главные из которых мы рассмотрим далее.

Исправления ошибок и новые фичи Apache Spark 3.4.1

Поскольку выпуск считается отладочным, начнем с исправления ошибок, которых более 50. В частности, исправлена проблема, когда внешнее соединение с использованием joinWith для DataFrames возвращает строки с нулевыми полями вместо NULL-значений. Исправлено разрешение столбца при полном внешнем соединении с выражением USING, включая случай, когда ссылки на ключ определенной стороны в соединении USING могут иметь неверную допустимость значений NULL. Также исправлена ошибка при соединениях с подзапросом в состоянии, если кодегенерация всего этапа и адаптивное выполнение отключены. Устранена ошибка кодогенерации, когда связанное условие полного внешнего соединения имеет несколько ссылок на один и тот же столбец на стороне потока. Теперь драйвер Spark не будет зависает с ошибкой нехватки памяти во время трансляции при включенной оптимизации AQE. Устранена проблема StackOverflowError при чтении JSON-документа, не соответствующего схеме, а также исправлена ​​ошибка функции createDataFrame() из схемы сложного типа. Исправлена ​​ошибка, из-за которой логика функции обрезки (trim) неправильно обрабатывала управляющие символы ASCII.

Устранена проблема с функцией DataFrame.to(schema), которая давала сбой при наличии вложенного поля, не допускающее значение NULL, в поле, допускающем значение NULL. Устранена обработка отсутствующих свойств hadoopProperties и metricsProperties, а также зависание Spark-приложения, когда YarnAllocator добавляет запущенные исполнители после обработки завершенных контейнеров. Наконец, теперь пользовательский интерфейс структурированной потоковой передачи корректно отображает неудачные запросы.

Помимо исправления ошибок, обновлены некоторые зависимости: snappy-java до версий 1.1.10.0 и 1.1.10.1, cloudpickle до версии 2.2.1 и формата ORC до версии 1.8.4. Пакет cloudpickle позволяет сериализовать конструкции Python, не поддерживаемые модулем pickle по умолчанию из стандартной Python-библиотеки. Этот пакет особенно полезен для кластерных вычислений , когда код Python отправляется по сети для выполнения на удаленных хостах, что часто бывает в кластере Spark.

Также добавлены новые фичи:

  • поддержка JDBC в DataFrameReader;
  • широковещательная трансляция в функции Scala;
  • реализация функций DataFrameStatFunctions и DataFrameNaFunctions;
  • класс имени столбца (ColumnName) для подключения к датафрейму;
  • API TempView в датасет;
  • версия и время датасета (Dataset.version и Dataset.time), а также Dataset.semanticHash;
  • второй метод groupBy в API Dataset;
  • API исходного типизированного датасета;
  • имплицитные свойства SparkSession, которые позволяют делать дает неявные преобразования для преобразования объектов Scala (включая RDD) в объекты Dataset, DataFrame, Columns или поддержки таких преобразований через кодировщики. Это специфичные для Scala неявные методы для преобразования обычных объектов Scala в файлы DataFrame.
  • конфигурация среды исполнения RuntimeConf и типизированные столбцы TypedColumn;
  • поддержка пользовательских расширений в клиенте Spark Connect Scala;
  • функции createDataFrame() и createDataset() в SparkSession;
  • поддержка именованных параметров в именованных общих табличных выражениях (CTE), чтобы выполнять сложные SQL-запросы.

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

[elementor-template id=»13619″]

Источники

  1. https://spark.apache.org/releases/spark-release-3-4-1/
  2. https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315420&version=12352874