Partilhar via


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. Consulte a sintaxe de evolução do esquema para fundir.

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. Consulte 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. 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.

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. Defini-los em pipelines de computação serverless ou Lakeflow Spark Declarative Pipelines resulta num erro.
spark.jars Computação sem servidor e Pipelines Declarativos do Lakeflow Spark O Azure Databricks não suporta a ligação de JARs em servidores serverless, como as pipelines de computação ou as Lakeflow Spark Declarative Pipelines, usando configurações Spark, mas pode executar tarefas JAR em ambiente serverless. 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")