Compartilhar via


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

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

A 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 ao atualizar as versões do Databricks Runtime, as configurações herdadas do Spark podem substituir os novos comportamentos padrão que otimizam as cargas de trabalho.

Para muitos comportamentos controlados por propriedades do Spark, Azure Databricks também fornece opções para habilitar o comportamento em um nível de tabela ou configurar o comportamento personalizado como parte de uma operação de gravação. Por exemplo, a evolução do esquema era controlada anteriormente por uma propriedade spark, mas agora tem cobertura em SQL, Python e Scala. Confira Sintaxe de evolução de esquema para mesclagem.

Configurar propriedades do Spark para notebooks e trabalhos

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

Propriedades configuradas Aplica-se a
Como usar a configuração de computação Todos os notebooks e trabalhos são executados com o recurso de computação.
Dentro de um notebook Somente a SparkSession para o notebook atual.

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

Para definir uma propriedade do Spark em um notebook, use a sintaxe a seguir:

SQL

SET spark.sql.ansi.enabled = true

Python

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

Scala (linguagem de programação)

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

Configurar as propriedades do Spark no Databricks SQL

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

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

Para a maioria das configurações SQL com suporte, é possível substituir o comportamento global na sua sessão atual. O exemplo a seguir desativa o modo ANSI:

SET ANSI_MODE = false

Configurar propriedades do Spark para Pipelines Declarativos do Spark do Lakeflow

O Lakeflow Spark Declarative Pipelines permite configurar 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 as propriedades de pipeline e de computação do Spark usando a interface do usuário ou JSON. Consulte Configurar Pipelines.

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

Configurar propriedades do Spark para notebooks e trabalhos sem servidor

A computação sem servidor não dá suporte à configuração da maioria das propriedades do Spark para notebooks ou trabalhos. A seguir estão as propriedades que você pode configurar:

Propriedade Padrão Descrição
spark.databricks.execution.timeout 9000 (aplicável somente para notebooks) O tempo limite de execução, em segundos, para consultas do Spark Connect. O valor padrão só é aplicável para consultas de notebook. Para trabalhos em execução na computação sem servidor (e trabalhos em execução na 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 A ID do fuso horário local da sessão no formato de IDs de zona baseadas em região ou deslocamentos de zona.
spark.sql.shuffle.partitions auto O número padrão de partições a serem usadas ao embaralhar 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 o Hive.
spark.sql.files.maxPartitionBytes 134217728 (128 MB) O número máximo de bytes a serem empacotados em uma única partição ao ler arquivos.

Propriedades Spark sem suporte

As propriedades de configuração do Spark a seguir não têm suporte no Azure Databricks. As propriedades spark sem suporte são ignoradas por Azure Databricks ou podem causar conflitos e falhas quando usadas simultaneamente com recursos de Azure Databricks. Se você estiver migrando cargas de trabalho para Azure Databricks, substitua as propriedades sem suporte pelas alternativas recomendadas.

Propriedades Spark não suportadas Aplica-se a Alternativa do Databricks
spark.dynamicAllocation.enabled
spark.dynamicAllocation.initialExecutors
spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors
spark.dynamicAllocation.executorIdleTimeout
Computação clássica Configure o dimensionamento automático do Azure Databricks, que gerencia o ciclo de vida do executor no nível da plataforma. Veja Habilitar escalonamento automático.
spark.master
spark.driver.host
spark.driver.port
Computação sem servidor e Pipelines Declarativos do Lakeflow Spark A infraestrutura Azure Databricks sem servidor gerencia essas propriedades de conexão internas automaticamente. Eles não podem ser definidos pelos usuários. Defini-los em computação sem servidor ou pipelines do Lakeflow Spark Declarative Pipelines resulta em um erro.
spark.jars Computação sem servidor e Pipelines Declarativos do Lakeflow Spark Azure Databricks não dá suporte à anexação de JARs à computação sem servidor ou aos pipelines do Lakeflow Spark Declarative Pipelines usando configurações do Spark, mas você pode executar tarefas JAR sem servidor. Consulte Configurar o ambiente para tarefas de trabalho.
spark.databricks.runtimeoptions.* Computação clássica Em vez disso, use o runtime_options atributo na configuração do cluster. As opções de runtime não podem ser definidas como configuração do Spark em qualquer tipo de cluster. A tentativa de defini-las usando configurações do Spark resulta em um erro.

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

Use a seguinte sintaxe para examinar a configuração atual de uma configuração do Spark:

spark.conf.get("configuration_name")