Настройка свойств конфигурации Spark в Azure Databricks

Свойства конфигурации Spark (Confs Spark) можно задать для настройки параметров в вычислительной среде.

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

Для многих действий, контролируемых свойствами Spark, Azure Databricks также предоставляет параметры для включения поведения на уровне таблицы или настройки пользовательского поведения в рамках операции записи. Например, эволюция схемы ранее управляла свойством Spark, но теперь имеет покрытие в SQL, Python и Scala. См. синтаксис эволюции схемы для слияния.

Настройка свойств Spark для записных книжек и заданий

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

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

Инструкции по настройке свойств Spark на уровне вычислений см. в разделе "Конфигурация Spark".

Чтобы задать свойство Spark в записной книжке, используйте следующий синтаксис:

SQL

SET spark.sql.ansi.enabled = true

Python

spark.conf.set("spark.sql.ansi.enabled", "true")

язык программирования Scala

spark.conf.set("spark.sql.ansi.enabled", "true")

Настройка свойств Spark в Databricks SQL

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

Кроме конфигураций доступа к данным, Databricks SQL позволяет только несколько конфигураций Spark, которые имеют более короткие названия для упрощения. См. параметры конфигурации.

Для большинства поддерживаемых конфигураций SQL можно переопределить глобальное поведение в текущем сеансе. В следующем примере отключен режим ANSI:

SET ANSI_MODE = false

Настройка свойств Spark для декларативных пайплайнов Lakeflow Spark

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

Вы можете задать свойства конвейера и вычислений Spark с помощью пользовательского интерфейса или JSON. См. раздел "Настройка конвейеров".

Используйте параметр spark_conf в функциях декоратора декларативных конвейеров Lakeflow Spark, чтобы настроить свойства Spark для потоков, представлений и таблиц. См. справочник по языку Python для декларативных конвейеров Lakeflow Spark.

Настройка свойств Spark для бессерверных записных книжек и заданий

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

Собственность По умолчанию Описание
spark.databricks.execution.timeout 9000 (применимо только для записных книжек) Время ожидания выполнения (в секундах) для запросов Spark Connect. Значение по умолчанию применимо только для запросов записной книжки. Для заданий, выполняемых на бессерверных вычислениях (и заданиях, выполняемых в классическом стандартном вычислении), время ожидания отсутствует, если это свойство не задано.
spark.sql.legacy.timeParserPolicy CORRECTED Политика разбора времени.
spark.sql.session.timeZone Etc/UTC Идентификатор локального часового пояса сеанса в формате либо идентификаторов зон, основанных на регионе, либо смещений часового пояса.
spark.sql.shuffle.partitions auto Число секций по умолчанию, используемых при перемешивании данных для соединений или агрегаций.
spark.sql.ansi.enabled true Если значение true, Spark SQL использует диалект, совместимый с ANSI, вместо совместимости с Hive.
spark.sql.files.maxPartitionBytes 134217728 (128 МБ) Максимальное количество байтов для упаковки в одну секцию при чтении файлов.

Неподдерживаемые свойства Spark

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

Неподдерживаемые свойства Spark Применимо к Альтернатива Databricks
spark.dynamicAllocation.enabled
spark.dynamicAllocation.initialExecutors
spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors
spark.dynamicAllocation.executorIdleTimeout
Классические вычисления Настройте автоматическое масштабирование Azure Databricks, которое управляет жизненным циклом выполняющего сервера на уровне платформы. См. раздел "Включить автомасштабирование".
spark.master
spark.driver.host
spark.driver.port
Бессерверные вычисления и декларативные конвейеры Spark Lakeflow Инфраструктура без сервера Azure Databricks автоматически управляет этими внутренними свойствами подключения. Они не могут быть заданы пользователями. Установка их на серверные вычисления без сервера или декларативные конвейеры Lakeflow Spark приводит к ошибке.
spark.jars Бессерверные вычисления и декларативные конвейеры Spark Lakeflow Azure Databricks не поддерживает присоединение JAR к бессерверным вычислительным конвейерам или конвейерам Декларативных конвейеров Spark Lakeflow с помощью конфигураций Spark, но вы можете выполнять бессерверные JAR-задачи. См. раздел "Настройка среды для задач задания".
spark.databricks.runtimeoptions.* Классические вычисления runtime_options Вместо этого используйте атрибут в конфигурации кластера. Параметры среды выполнения не могут быть заданы в качестве конфигурации Spark для любого типа кластера. Попытка задать эти конфигурации Spark приводит к ошибке.

Получение текущего параметра для конфигурации Spark

Используйте следующий синтаксис, чтобы просмотреть текущий параметр конфигурации Spark:

spark.conf.get("configuration_name")