Поделиться через


Заметки о новых версиях бессерверных вычислительных ресурсов

В этой статье описываются доступные и будущие возможности и функциональность бессерверных вычислительных ресурсов для блокнотов и заданий.

Дополнительные сведения о бессерверных вычислениях см. в разделе "Подключение к бессерверным вычислениям".

Azure Databricks периодически выпускает обновления бессерверных вычислений, автоматически обновляя бессерверную среду выполнения вычислений для поддержки улучшений и обновлений платформы. Все пользователи получают одинаковые обновления, которые развертываются в течение короткого периода времени.

версии бессерверной среды

Бессерверные вычисления для записных книжек и заданий используют версии среды, предоставляющие стабильный клиентский API на основе Spark Connect, чтобы обеспечить совместимость приложений. Это позволяет Databricks независимо обновлять сервер, обеспечивая улучшения производительности, улучшения безопасности и исправления ошибок без каких-либо изменений кода в рабочих нагрузках.

Каждая версия среды включает определенную версию Python и набор пакетов Python с определенными версиями. Databricks представляет новые функции и исправления в последней версии среды при применении обновлений системы безопасности ко всем поддерживаемым версиям среды. Пользователи могут выбрать следующие доступные версии среды:

Заметки о выпуске

В этом разделе содержатся примечания к выпуску вычислений без сервера. Заметки о выпуске систематизированы по годам и неделям в каждом году. Бессерверные вычисления всегда выполняются с помощью последней выпущенной версии, указанной здесь.

Теперь режим производительности настраивается для бессерверных заданий

April 14, 2025

Теперь можно выбрать режим производительности бессерверного задания с помощью параметра, оптимизированного для производительности , на странице сведений о задании. Ранее все бессерверные задания были оптимизированы для повышения производительности. Теперь можно отключить оптимизированный для производительности параметр для выполнения рабочей нагрузки в стандартном режиме производительности. Стандартный режим пеформанса предназначен для снижения затрат на рабочие нагрузки, в которых допустима небольшая задержка запуска.

Стандартный режим производительности не поддерживается для конвейеров с непрерывной обработкой, одноразовых запусков, созданных с помощью конечной точки runs/submit, или заданий для хранилища SQL, включая материализованные представления.

Дополнительные сведения о режиме производительности см. в разделе "Выбор режима производительности".

Версия 16.3

9 апреля 2025 г.

Этот бессерверный выпуск вычислений примерно соответствует Databricks Runtime 16.3.

Изменения в поведении

  • *Улучшено сообщение об ошибке при kafka.sasl.client.callback.handler.class назначении недопустимого значения: этот выпуск включает изменение для возврата более описательного сообщения об ошибке при kafka.sasl.client.callback.handler.class назначении недопустимого значения.

Новые возможности

  • Поддержка чтения состояния теперь общедоступна: поддержка чтения состояния для запросов на структурированную потоковую обработку теперь общедоступна для бессерверных вычислений. См. Сведения о состоянии структурированной потоковой передачи.

  • Деградация протокола таблиц Delta — общедоступная версия с защитой контрольных точек: DROP FEATURE доступна для удаления функциональных возможностей таблиц Delta Lake и понижения уровня протокола таблицы. По умолчанию DROP FEATURE теперь создает защищенные контрольные точки для более оптимизированного и упрощенного опыта понижения, который не требует времени ожидания или обрезки истории. См. Управление функцией удаления таблицы Delta Lake и понижение протокола таблицы.

  • Написание процедурных скриптов SQL на основе ANSI SQL/PSM (общедоступная предварительная версия): теперь можно использовать возможности сценариев на основе ANSI SQL/PSM для записи процедурной логики с помощью SQL, включая инструкции потока управления, локальные переменные и обработку исключений. См. скриптов SQL.

  • Параметры сортировки на уровне таблицы и уровня представления по умолчанию: теперь можно указать параметры сортировки по умолчанию для таблиц и представлений. Это упрощает создание таблицы и представлений, где все или большинство столбцов имеют одинаковые параметры сортировки. См. сортировки.

  • Поддержка для transformWithStateInPandas: теперь можно использовать transformWithStateInPandas на безсерверных вычислениях. См. Создание пользовательского стейтфул приложения.

  • ### Новые функции H3: добавлены три новых функции H3: h3_try_coverash3, h3_try_coverash3string и h3_try_tessellateaswkb.

  • Изменение нескольких столбцов таблицы в одной инструкции: теперь можно изменить несколько столбцов в одной ALTER TABLEALTER TABLE инструкции. См. ALTER TABLE … COLUMN положение.

Версия 16.2

13 марта 2025 г.

Этот выпуск вычислений без серверов примерно соответствует Databricks Runtime 16.2.

Изменения в поведении

  • В Delta Sharing история таблиц включена по умолчанию: Доли, созданные с помощью команды SQL ALTER SHARE <share> ADD TABLE <table>, теперь имеют включенную историю обмена (WITH HISTORY) по умолчанию. См. ALTER SHARE.

  • инструкции Credential SQL возвращают ошибку при несоответствии типа учетных данных. Теперь, если тип учетных данных, указанный в инструкции SQL управления учетными данными, не соответствует типу аргумента учетных данных, возвращается ошибка, а инструкция не выполняется.

Новые возможности

  • Использование timestampdiff & timestampadd в создаваемых выражениях столбцов Теперь вы можете использовать функции timestampdiff и timestampadd в выражениях столбцов Delta Lake. См. созданные столбцы Delta Lake .

  • Обновление DESCRIBE TABLE возвращает метаданные как структурированный JSON: теперь можно использовать команду DESCRIBE TABLE AS JSON для возврата метаданных таблицы в виде документа JSON. Выходные данные JSON более структурированы, чем отчет, доступный для чтения по умолчанию, и можно использовать для программной интерпретации схемы таблицы. Дополнительные сведения см. в разделе DESCRIBE TABLE AS JSON.

  • нечувствительные к завершающим пробелам параметры сортировки: Сервисы без сервера теперь поддерживают нечувствительные к завершающим пробелам параметры сортировки. Например, эти сортировки обрабатывают 'Hello' и 'Hello ' как равные. Чтобы узнать больше, см. раздел сортировки RTRIM.

Исправления ошибок

  • Улучшенная добавочная обработка клона. Этот выпуск включает исправление для пограничного случая, когда добавочный CLONE может повторно копировать файлы, уже скопированные из исходной таблицы в целевую таблицу. См. раздел Клонирование таблицы в Azure Databricks.

Высокий уровень памяти, доступный для бессерверных записных книжек (общедоступная предварительная версия)

7 февраля 2025 г.

Теперь можно настроить больший объём памяти для рабочих нагрузок бессерверных вычислительных нотбуков. Этот параметр можно применить как к интерактивным, так и запланированным рабочим нагрузкам записной книжки.

Бессерверное использование с высокой памятью имеет более высокую скорость выбросов DBU, чем стандартная память.

Дополнительную информацию см. в разделе Использование высокопамятных бессерверных вычислений.

Версия 16.1

5 февраля 2025 г.

Этот бессерверный релиз примерно соответствует Databricks Runtime 16.0 и Databricks Runtime 16.1.

Новые возможности

  • Поддержка Avro для рекурсивной схемы: теперь можно использовать параметр recursiveFieldMaxDepth с функцией from_avro и источником данных avro. Этот параметр задает максимальную глубину рекурсии схемы в источнике данных Avro. См. статью "Чтение и запись потоковых данных Avro".
  • Расширенная поддержка реестра схем Confluent для Avro: в среде Serverless теперь поддерживается ссылка на схему Avro с использованием реестра схем Confluent. См. Аутентификация во внешнем реестре схем Confluent.
  • Принудительное рекластеризация в таблицах с жидкой кластеризацией: теперь можно использовать синтаксис OPTIMIZE FULL для принудительной рекластеризации всех записей в таблице с включенной жидкой кластеризацией. См. раздел Принудительная перекластеризация для всех записей.
  • API Delta для Python теперь поддерживают столбцы удостоверений: теперь можно использовать API Delta для Python для создания таблиц с столбцами удостоверений. См. Использование идентификационных столбцов в Delta Lake.
  • Создание жидких кластеризованных таблиц при потоковой записи: теперь можно использовать clusterBy для включения жидкой кластеризации при создании новых таблиц с помощью структурированных потоковых записей. См. раздел "Включить кластеризацию жидкости".
  • Поддержка предложения OPTIMIZE FULL: бессерверные вычисления теперь поддерживают предложение OPTIMIZE FULL. Это предложение оптимизирует все записи в таблице, использующей кластеризацию жидкости, включая данные, которые ранее были кластеризованы.
  • Поддержка спецификации параметров WITH в INSERT и ссылках на таблицы: Бессерверные вычисления теперь поддерживают спецификацию параметров для ссылок на таблицы и имен таблиц в инструкции INSERT, которая может использоваться для управления поведением источников данных.
  • Новые функции SQL: следующие функции SQL теперь доступны в бессерверных вычислениях:
    • try_url_decode — это терпимая к ошибке версия url_decode.
    • zeroifnull возвращает 0, если входное выражение для функции zeroifnull() является NULL.
    • nullifzero возвращает NULL, если входные данные равны 0, или своё собственное значение, если не равны 0.
    • dayname(expr) возвращает трехбуквенный английский акроним для дня недели для указанной даты.
    • uniform(expr1, expr2 [,seed]) возвращает случайное значение с независимыми и идентичными распределенными значениями в указанном диапазоне чисел.
    • randstr(length) возвращает случайную строку length буквенно-числовых символов.
  • Включить автоматическую эволюцию схемы при слиянии данных в таблицу Delta: добавлена поддержка для элемента withSchemaEvolution() класса DeltaMergeBuilder. Используйте withSchemaEvolution() для включения автоматической эволюции схемы во время операций MERGE. Например, mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}.
  • Поддержка колляций в Apache Spark доступна в общедоступной предварительной версии: теперь можно назначать колляции с учетом языка, нечувствительные к регистру и доступу, для STRING столбцов и выражений. Эти сортировки используются для сравнения строк, сортировки, операций группировки и многих строковых функций. См. сортировки.
  • поддержка параметров сортировки в Delta Lake доступна в общедоступной предварительной версии: теперь можно определить параметры сортировки для столбцов при создании или изменении таблицы Delta. См. поддержку сортировки для Delta Lake.
  • Режим LITE для вакуума доступен в общедоступной предварительной версии: теперь можно использовать VACUUM table_name LITE для выполнения более легковесной операции вакуума, которая использует метаданные в журнале транзакций Delta. См. полный и легкий режим и VACUUM.
  • Поддержка параметризации предложения USE CATALOG with IDENTIFIER: предложение IDENTIFIER теперь поддерживается для инструкции USE CATALOG. С помощью этой поддержки можно параметризовать текущий каталог на основе строковой переменной или маркера параметров.
  • COMMENT ON COLUMN поддержка таблиц и представлений: оператор COMMENT ON теперь поддерживает изменения комментариев для столбцов в представлениях и таблицах.
  • вызов именованного параметра для дополнительных функций: следующие функции поддерживают вызов именованных параметров:
  • Параметр SYNC METADATA команды REPAIR TABLE поддерживается в хранилище метаданных Hive: теперь можно использовать параметр SYNC METADATA с командой REPAIR TABLE для обновления метаданных управляемой таблицы хранилища метаданных Hive. См. REPAIR TABLE.
  • Усиленная целостность данных для сжатых пакетов Apache Arrow: для дальнейшей защиты от повреждения данных LZ4 каждый сжатый пакет Apache Arrow теперь включает LZ4 контрольные суммы содержимого и блоков. См. описание формата кадров LZ4.
  • Встроенный драйвер Oracle JDBC: В драйвере Oracle JDBC теперь встроены функции бессерверных вычислений. Если вы используете JAR-файл драйвера JDBC, отправленный клиентом, через DriverManager, необходимо переписать скрипты для явного использования пользовательского JAR-файла. В противном случае используется встроенный драйвер. Этот драйвер поддерживает только Федерацию Lakehouse. Для других вариантов использования необходимо указать собственный драйвер.
  • Более подробные ошибки для таблиц Delta, доступ к которым осуществляется с помощью путей: теперь доступен новый интерфейс сообщения об ошибке для таблиц Delta, доступ к которым осуществляется с помощью путей. Теперь все исключения перенаправляются пользователю. Исключение DELTA_MISSING_DELTA_TABLE теперь зарезервировано для случая, когда базовые файлы не могут быть прочитаны как Delta-таблица.

Изменения в поведении

  • Критическое изменение: размещенное RStudio достигло конца своего жизненного цикла.В этом выпуске сервер RStudio, размещенный в Databricks, достиг конца своего жизненного цикла и недоступен в любой рабочей области Azure Databricks, работающей на бессерверных вычислениях. Чтобы узнать больше и ознакомиться со списком альтернатив RStudio, перейдите в раздел о выводе из эксплуатации размещённого RStudio Server .

  • критическое изменение: удаление поддержки для изменения byte, short, int и long типов на более широкие типы: Для обеспечения согласованного поведения в таблицах Delta и Iceberg следующие изменения типа данных больше не могут применяться к таблицам с включенной функцией расширения типа .

    • byte, short, int и long в decimal.
    • byte, short, и int в double.
  • Исправление синтаксического анализа шаблонов регулярных выражений с отрицанием во вложенной группировке символов: Этот выпуск включает изменение, чтобы обеспечить правильный анализ шаблонов регулярных выражений с отрицанием во вложенной группировке символов. Например, [^[abc]] будет проанализирован как "любой символ, который не является одним из "abc".

    Кроме того, поведение Photon было несовместимо с Spark для вложенных классов символов. Шаблоны regex, содержащие вложенные классы символов, больше не будут использовать Photon, а вместо этого будут использовать Spark. Вложенный класс символов — это любой шаблон, содержащий квадратные скобки в квадратных скобках, например [[a-c][1-3]].

  • Улучшение обнаружения повторяющихся совпадений в Delta Lake MERGE:MERGE теперь учитывает условия, указанные в предложении WHEN MATCHED. См. объединение данных в таблице Delta Lake с использованием операции upsert.

  • Функции addArtifact() теперь согласованы между типами вычислений: При использовании addArtifact(archive = True) для добавления зависимости к бессерверным вычислениям архив автоматически распаковается.

  • Тип данных VARIANT больше не может использоваться с операциями, требующими сравнения: нельзя использовать следующие предложения или операторы в запросах, включающих тип данных VARIANT:

    • DISTINCT
    • INTERSECT
    • EXCEPT
    • UNION
    • DISTRIBUTE BY

    Кроме того, эти функции DataFrame нельзя использовать:

    • df.dropDuplicates()
    • df.repartition()

    Эти операции выполняют сравнения и сравнения, использующие тип данных VARIANT, создают неопределенные результаты и не поддерживаются в Databricks. Если вы используете тип VARIANT в рабочих нагрузках или таблицах Azure Databricks, Databricks рекомендует следующие изменения:

    • Обновите запросы или выражения для явного приведения значений VARIANT к типам данных, отличным отVARIANT.
    • Если у вас есть поля, которые должны использоваться с любой из указанных выше операций, извлеките эти поля из типа данных VARIANT и сохраните их с помощью типов данных, отличных отVARIANT.

    См. вариантные данные запроса .

Исправления ошибок

  • Смещения часового пояса теперь включают секунды при сериализации в CSV, JSON и XML: Метки времени со смещениями часового пояса, которые включают секунды (что распространено для меток времени до 1900 года), ранее упускали секунды при сериализации в CSV, JSON и XML. Форматирование метки времени по умолчанию было исправлено, и теперь возвращает правильные значения смещения для этих меток времени.

Другие изменения

  • Коды ошибок переименованы для источника структурированной потоковой передачи cloudFiles: были переименованы следующие коды ошибок:
    • _LEGACY_ERROR_TEMP_DBR_0143 переименован в CF_INCORRECT_STREAM_USAGE.
    • _LEGACY_ERROR_TEMP_DBR_0260 переименован в CF_INCORRECT_BATCH_USAGE .

Версия 15.4

28 октября 2024 г.

Этот бессерверный выпуск вычислений примерно соответствует Databricks Runtime 15.4

Новые возможности

  • Функции проверки UTF-8: в этом выпуске представлены следующие функции для проверки строк UTF-8:
    • is_valid_utf8 проверяет, является ли строка допустимой строкой UTF-8.
    • make_valid_utf8 преобразует потенциально недопустимую строку UTF-8 в допустимую строку UTF-8 с помощью символов подстановки.
    • validate_utf8 вызывает ошибку, если входные данные не являются допустимой строкой UTF-8.
    • try_validate_utf8 возвращает NULL, если входные данные не являются допустимой строкой UTF-8.
  • Включить UniForm Iceberg с помощью ALTER TABLE: теперь можно включить UniForm Iceberg в существующих таблицах без перезаписи файлов данных. См. Включение чтения Iceberg на существующей таблице.
  • функция try_url_decode: в этом выпуске представлена функция try_url_decode , которая декодирует строку, закодированную URL-адресом. Если строка не имеет правильного формата, функция возвращается NULL вместо того, чтобы вызывать ошибку.
  • Оптимизатор может при необходимости полагаться на необеспеченные ограничения внешнего ключа: Для повышения производительности запросов теперь можно указать ключевое слово RELY для ограничений FOREIGN KEY при создании таблицы с помощью CREATE или её изменении с помощью ALTER .
  • Параллельное выполнение заданий для выборочных перезаписей: Выборочные перезаписи с использованием replaceWhere теперь выполняют задания по удалению данных и вставке новых данных параллельно, что повышает производительность запросов и использование кластера.
  • улучшенная производительность канала данных изменений с выборочными перезаписями: выборочные перезаписи с использованием replaceWhere на таблицах с каналом данных изменений больше не создают отдельные файлы данных изменений для вставленных данных. Эти операции используют скрытый столбец _change_type, присутствующий в основных файлах данных Parquet, для записи изменений без увеличения объема записи.
  • Улучшенная задержка запроса для COPY INTO команды: этот выпуск включает изменение, которое улучшает задержку запроса для COPY INTO команды. Улучшение реализовано за счет асинхронной загрузки состояния в хранилище состояний RocksDB. При этом изменении вы должны заметить улучшение времени запуска запросов с большими состояниями, такими как запросы с большим количеством уже загруженных файлов.
  • Поддержка удаления функции таблицы ограничений проверки: теперь можно удалить функцию таблицы checkConstraints из таблицы Delta с помощью ALTER TABLE table_name DROP FEATURE checkConstraints. См. Отключить ограничения проверки.

Изменения в поведении

  • Изменение связывания схемы для представлений: Если типы данных в базовом запросе представления изменяются с тех, которые использовались при его создании, Databricks больше не вызывает ошибки для ссылок на представление, даже если безопасное приведение не может быть выполнено.

    Вместо этого представление компенсирует с помощью обычных правил приведения. Это изменение позволяет Databricks более легко терпеть изменения схемы таблицы.

  • Запретить недокументированную ! допустимость синтаксиса для NOT вне булевой логики: Databricks больше не допускает использование ! в качестве синонима для NOT за пределами булевой логики. Это изменение уменьшает путаницу, соответствует стандарту SQL и делает SQL более переносимым. Например:

    CREATE ... IF ! EXISTS, НЕ NULL, ! NULL столбца или свойства поля, ! IN и НЕ МЕЖДУ необходимо заменить следующими значениями.

    CREATE ... IF NOT EXISTS, IS NOT NULL, NOT NULL столбца или свойства поля, NOT IN и NOT BETWEEN.

    Логический префиксный оператор (например, или !) не затрагивается этим изменением.

  • Запретить использование незадокументированных и необработанных частей синтаксиса определения столбцов в представлениях: Databricks поддерживает CREATE VIEW с именованными столбцами и комментариями к столбцам.

    Спецификация типов столбцов, ограничений NOT NULL или DEFAULT была разрешена в синтаксисе без каких-либо последствий. Databricks уберет поддержку этого синтаксиса. Это снижает путаницу, соответствует стандарту SQL и обеспечивает будущие улучшения.

  • Согласованная обработка ошибок для декодирования Base64 в Spark и Photon: в этом выпуске изменяется способ обработки ошибок декодирования Base64 в соответствии с обработкой этих ошибок Spark. Перед этими изменениями путь генерации кода для Photon и Spark иногда не вызывал исключений синтаксического анализа, тогда как интерпретированная обработка в Spark правильно вызывала IllegalArgumentException, но ConversionInvalidInputError не удавалось. Это обновление гарантирует, что Photon постоянно создает те же исключения, что и Spark во время декодирования Base64, обеспечивая более прогнозируемую и надежную обработку ошибок.

  • Добавление ограничения CHECK на недействительный столбец теперь возвращает ошибку класса UNRESOLVED_COLUMN.WITH_SUGGESTION: Для предоставления более понятных сообщений об ошибках в Databricks Runtime версий 15.3 и выше, оператор ALTER TABLE ADD CONSTRAINT, включающий ограничение CHECK, которое ссылается на недействительное имя столбца, возвращает ошибку класса UNRESOLVED_COLUMN.WITH_SUGGESTION. Ранее возвращался объект INTERNAL_ERROR.

JDK обновляется с JDK 8 до JDK 17

15 августа 2024 г.

Бессерверные вычисления для записных книжек и рабочих процессов перенесены из пакета разработки Java (JDK) 8 в JDK 17 на стороне сервера. Это обновление включает следующие изменения поведения:

  • Правильный анализ шаблонов regex с отрицанием в вложенной группировке символов. С помощью этого обновления Azure Databricks теперь поддерживает правильный анализ шаблонов regex с отрицанием в вложенной группировке символов. Например, [^[abc]] будет проанализирован как "любой символ, который не является одним из "abc".

    Кроме того, поведение Photon было несовместимо с Spark для вложенных классов символов. Шаблоны regex, содержащие вложенные классы символов, больше не будут использовать Photon, а вместо этого будут использовать Spark. Вложенный класс символов — это любой шаблон, содержащий квадратные скобки в квадратных скобках, например [[a-c][1-3]].

Версия 15.1

23 июля 2024 г.

Этот бессерверный выпуск вычислений примерно соответствует Databricks Runtime 15.1

Новые возможности

Поддержка синтаксиса звездочки (*) в предложении WHERE: теперь вы можете использовать синтаксис звездочки (*) в предложении WHERE, чтобы ссылаться на все столбцы из списка SELECT.

Например, SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*).

Изменения

Улучшено восстановление после ошибок при разборе JSON: JSON-парсер, используемый для выражений пути JSON, теперь быстрее справляется с неправильно сформированным синтаксисом, что приводит к снижению потерь данных.

При обнаружении неправильно сформированного синтаксиса JSON в поле структуры, значении массива, ключа карты или значения карты средство синтаксического анализа JSON теперь возвращается NULL только для непрочитаемого поля, ключа или элемента. Последующие поля, ключи или элементы будут правильно проанализированы. До этого изменения парсер JSON прекращал анализ массива, структуры или карты и возвращал NULL для оставшегося содержимого.

Версия 14.3

15 апреля 2024 г.

Это исходная версия бессерверных вычислений. Эта версия примерно соответствует Databricks Runtime 14.3 с некоторыми изменениями, которые удаляют поддержку некоторых несерверных и устаревших функций.

поддерживаемые параметры конфигурации Spark

Чтобы автоматизировать настройку Spark на бессерверных вычислениях, Azure Databricks удалила поддержку ручной настройки большинства конфигураций Spark. Чтобы просмотреть список поддерживаемых параметров конфигурации Spark, см. статью "Настройка свойств Spark для бессерверных записных книжек и заданий".

Запуск задания на бессерверной вычислительной платформе завершится неудачей, если вы установите неподдерживаемую конфигурацию Spark.

input_file функции устарели

Функции input_file_name(), input_file_block_length()и input_file_block_start() устарели. Использование этих функций очень не рекомендуется.

Вместо этого используйте столбец метаданных файла для получения сведений о метаданных файла.

Изменения поведения

Бессерверные вычислительные ресурсы версии 2024.15 включают следующие изменения поведения:

  • При исправлении ошибки в unhex(hexStr): при использовании unhex(hexStr), hexStr всегда дополняется слева до полного байта. Ранее функция unhex проигнорировала первую половину байта. Например: unhex('ABC') теперь производит x'0ABC' вместо x'BC'.
  • автоматически созданные псевдонимы столбцов теперь стабильны: Если результат выражения ссылается без псевдонима столбца, созданного пользователем, этот автоматически созданный псевдоним теперь будет стабильным. Новый алгоритм может привести к изменению ранее созданных автоматически имен, используемых в таких функциях, как материализованные представления.
  • сканирования таблиц с полями типа CHAR теперь всегда с заполнением: разностные таблицы, определенные таблицы JDBC и внешние источники данных хранят данные CHAR в незаполненной форме. При чтении Azure Databricks теперь будет заполнять данные пробелами до заявленной длины, чтобы обеспечить правильную семантику.
  • Приведение из BIGINT/DECIMAL в TIMESTAMP вызывает исключение для переполненных значений: Azure Databricks позволяет приведение из BIGINT и DECIMAL в TIMESTAMP, рассматривая значение как количество секунд с начала эпохи Unix. Ранее Azure Databricks возвращал переполненные значения, но теперь создает исключение в случаях переполнения. Используется try_cast для возврата NULL вместо исключения.
  • выполнение UDF PySpark было улучшено для соответствия точному поведению выполнения UDF на выделенных вычислительных ресурсах: были внесены следующие изменения:
    • Определяемые пользователем функции со строковым типом возврата более не преобразовывают нестроковые значения в строки. Ранее определяемые пользователем функции с возвращаемым типом str применяли str(..) оболочку к результату независимо от реального типа данных возвращаемого значения.
    • Определяемые пользователем функции с возвращаемыми типами timestamp больше не применяют неявное преобразование часового пояса к временным меткам.