Definir propriedades de configuração do Spark no Azure Databricks

Você pode definir as propriedades de configuração do Spark (confs do Spark) para personalizar as configurações em seu ambiente de computação.

O Databricks geralmente não recomenda a configuração da maioria das propriedades do Spark. Especialmente ao migrar do Apache Spark de código aberto ou atualizar versões do Databricks Runtime, as configurações herdadas do Spark podem substituir novos comportamentos padrão que otimizam cargas de trabalho.

Para muitos comportamentos controlados por propriedades do Spark, o Azure Databricks também oferece opções para ativar comportamentos ao nível de uma tabela ou para configurar comportamentos personalizados como parte de uma operação de escrita. Por exemplo, a evolução do esquema era anteriormente controlada por uma propriedade Spark, mas agora tem cobertura em SQL, Python e Scala. Veja MERGE com a evolução do esquema usando SQL, Python e Scala.

Configurar propriedades do Spark para blocos de anotações e trabalhos

Você pode definir propriedades do Spark para blocos de anotações e trabalhos. O escopo da configuração depende de como você a definiu.

Propriedades configuradas Aplica-se a
Usando a configuração de computação Todos os cadernos e trabalhos são executados com os recursos computacionais.
Dentro de um caderno Apenas o SparkSession para o bloco de notas atual.

Para obter instruções sobre como configurar as propriedades do Spark no nível de computação, consulte Configuração do Spark.

Para definir uma propriedade Spark em um bloco de anotações, use a seguinte sintaxe:

SQL

SET spark.sql.ansi.enabled = true

Python

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

linguagem de programação Scala

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

Configurar propriedades do Spark no Databricks SQL

O Databricks SQL permite que os administradores configurem as propriedades do Spark para acesso a dados no menu de configurações do espaço de trabalho. Consulte as configurações de acesso a dados

Além das configurações de acesso a dados, o Databricks SQL permite apenas um punhado de configurações do Spark, que foram abreviadas para nomes mais curtos para simplificar. Consulte Parâmetros de configuração.

Para a maioria das configurações SQL com suporte, você pode substituir o comportamento global em sua sessão atual. O exemplo a seguir desativa o modo ANSI:

SET ANSI_MODE = false

Configurar propriedades do Spark para Lakeflow Spark Declarative Pipelines

O Lakeflow Spark Declarative Pipelines permite configurar as propriedades do Spark para um pipeline, para um recurso de computação configurado para um pipeline ou para fluxos individuais, exibições materializadas ou tabelas de streaming.

Você pode definir propriedades de pipeline e de computação do Spark usando a interface do utilizador ou JSON. Veja Configurar pipelines.

Use a opção spark_conf nas funções do decorador Lakeflow Spark Declarative Pipelines para configurar as propriedades do Spark para fluxos, vistas ou tabelas. Consulte Lakeflow Spark Declarative Pipelines referência da linguagem Python.

Configurar propriedades do Spark para blocos de anotações e trabalhos sem servidor

A computação serverless não suporta a definição da maioria das propriedades do Spark para blocos de notas ou tarefas. A seguir estão as propriedades que você pode configurar:

Propriedade Predefinição Descrição
spark.databricks.execution.timeout 9000 (aplicável apenas a computadores portáteis) O tempo limite de execução, em segundos, para consultas do Spark Connect. O valor padrão só é aplicável para consultas de bloco de anotações. Os administradores do espaço de trabalho podem alterar a predefinição dos blocos de notas sem servidor nas definições de administração do espaço de trabalho. Veja proteção contra gastos excessivos sem servidores. Para trabalhos executados em computação sem servidor (e trabalhos executados em computação padrão clássica), não há tempo limite a menos que essa propriedade esteja definida.
spark.sql.legacy.timeParserPolicy CORRECTED A política do analisador de tempo.
spark.sql.session.timeZone Etc/UTC O ID do fuso horário local da sessão no formato de IDs de zonas baseadas em região ou deslocamentos de zona.
spark.sql.shuffle.partitions auto O número padrão de partições usadas ao processar dados para junções ou agregações.
spark.sql.ansi.enabled true Quando verdadeiro, o Spark SQL usa um dialeto compatível com ANSI em vez de ser compatível com Hive.
spark.sql.files.maxPartitionBytes 134217728 (128 MB) O número máximo de bytes para empacotar em uma única partição ao ler arquivos.

Propriedades Spark não suportadas

As seguintes propriedades de configuração do Spark não são suportadas no Azure Databricks. Propriedades Spark não suportadas são ignoradas pelo Azure Databricks ou podem causar conflitos e falhas quando usadas simultaneamente com funcionalidades do Azure Databricks. Se estiver a migrar cargas de trabalho para Azure Databricks, substitua propriedades não suportadas pelas alternativas recomendadas.

Note

Para além das propriedades aqui listadas, o modo de acesso padrão no Databricks Runtime 19 e superiores restringe certas propriedades de configuração do Spark. Criar ou editar um cluster que define uma propriedade restrita falha com um erro. Ver limitações de configuração do Spark.

Propriedades Spark não suportadas Aplica-se a Alternativa aos Databricks
spark.dynamicAllocation.enabled
spark.dynamicAllocation.initialExecutors
spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors
spark.dynamicAllocation.executorIdleTimeout
Computação clássica Em vez disso, configure o autoscaling do Azure Databricks, que gere o ciclo de vida dos executores a nível de plataforma. Veja Ativar o dimensionamento automático.
spark.master
spark.driver.host
spark.driver.port
Computação sem servidor e Pipelines Declarativos Spark do Lakeflow A infraestrutura serverless do Azure Databricks gere automaticamente estas propriedades internas de ligação. Não podem ser definidas pelos utilizadores. Configurá-los para computação sem servidor ou para o Lakeflow Spark Declarative Pipelines gera um erro.
spark.jars Computação sem servidor e Pipelines Declarativos Spark do Lakeflow O Azure Databricks não suporta anexar ficheiros JAR à computação sem servidor nem ao Lakeflow Spark Declarative Pipelines através de configurações do Spark, mas pode executar tarefas JAR sem servidor. Consulte Configurar ambiente para tarefas de trabalho.
spark.databricks.runtimeoptions.* Computação clássica Use o runtime_options atributo na configuração do cluster em vez disso. As opções de runtime não podem ser definidas como configuração Spark em qualquer tipo de cluster. Tentar defini-los usando configurações do Spark resulta num erro.

Obter a configuração atual para uma configuração do Spark

Use a sintaxe a seguir para revisar a configuração atual de uma configuração do Spark:

spark.conf.get("configuration_name")