Aller au contenu principal

Définir les propriétés de configuration Spark sur Databricks

Vous pouvez définir les propriétés de configuration Spark (configurations Spark) pour personnaliser les paramètres de votre environnement de compute.

Databricks déconseille généralement de configurer la plupart des propriétés Spark. En particulier lors de la migration à partir d'Apache Spark open source ou de la mise à niveau des versions de Databricks Runtime, les configurations Spark héritées peuvent remplacer les nouveaux comportements par default qui optimisent les charges de travail.

Pour de nombreux comportements contrôlés par les propriétés Spark, Databricks offre également des options pour activer le comportement au niveau d'une table ou pour configurer un comportement personnalisé dans le cadre d'une opération d'écriture. Par exemple, l'évolution des schémas était auparavant contrôlée par une propriété Spark, mais elle est désormais couverte par SQL, Python et Scala. Voir MERGE avec l'évolution des schémas utilisant SQL, Python et Scala.

Configurer les propriétés Spark pour les notebooks et les jobs

Vous pouvez définir les propriétés Spark pour les notebooks et les Jobs. La portée de la configuration dépend de la manière dont vous la définissez.

Propriétés configurées

S'applique à

Utilisation de la configuration compute

Tous les Notebooks et Jobs s'exécutent avec la ressource de compute.

Dans un Notebook

Seule la SparkSession pour le notebook actuel.

Propriétés configurées

S'applique à

Utilisation de la configuration compute

Tous les Notebooks et Jobs s'exécutent avec la ressource de compute.

Dans un Notebook

Seule la SparkSession pour le notebook actuel.

Pour obtenir des instructions sur la configuration des propriétés Spark au niveau du compute, reportez-vous à la configuration Spark.

Pour définir une propriété Spark dans un Notebook, utilisez la syntaxe suivante :

SQL
SET spark.sql.ansi.enabled = true

Configurez les propriétés Spark dans Databricks SQL

Databricks SQL permet aux administrateurs de configurer les propriétés Spark pour l'accès aux données dans le menu des paramètres de l'Workspace. Consultez les configurations d'accès aux données

Outre les configurations d’accès aux données, Databricks SQL n’autorise qu’une poignée de configurations Spark, qui ont été renommées avec des noms plus courts pour plus de simplicité. Voir les paramètres de configuration.

Pour la plupart des configurations SQL prises en charge, vous pouvez remplacer le comportement global dans votre session actuelle. L’exemple suivant désactive le mode ANSI :

SQL
SET ANSI_MODE = false

Configurer les propriétés Spark pour les LakeFlow Pipelines

Les LakeFlow Pipelines vous permettent de configurer les propriétés Spark pour un pipeline, pour une ressource de compute configurée pour un pipeline, ou pour des flux individuels, des vues matérialisées ou des tables de streaming.

Vous pouvez définir les propriétés Spark de pipeline et de compute à l'aide de l'interface utilisateur ou du JSON. Voir Configurer les pipelines.

Utilisez l’option spark_conf dans les fonctions de décorateur des LakeFlow Pipelines pour configurer les propriétés Spark pour les flows, les vues ou les tables. Consultez la référence du langage Python pour les Lakeflow pipelines.

Configurez les propriétés Spark pour les notebooks et les jobs serverless

Le compute Serverless ne prend pas en charge la configuration de la plupart des propriétés Spark pour les Notebooks ou les Jobs. Voici les propriétés que vous pouvez configurer :

Propriété

Par défaut

Description

spark.databricks.execution.timeout

9000 (applicable uniquement aux Notebooks)

Le délai d'expiration de l'exécution, en secondes, pour les queries Spark Connect. La valeur par default est uniquement applicable pour les queries de Notebook. Les administrateurs de workspace peuvent modifier la valeur par défaut pour les notebooks Serverless dans les paramètres d'administration du workspace. Voir la protection contre le dépassement de budget Serverless. Pour les Jobs exécutés sur le compute Serverless (et les Jobs exécutés sur le compute standard classique), il n'y a pas de délai d'expiration à moins que cette propriété ne soit définie.

spark.sql.legacy.timeParserPolicy

CORRECTED

La politique d'analyseur de temps.

spark.sql.session.timeZone

Etc/UTC

L'ID du fuseau horaire local de la session, au format des ID de fuseaux horaires basés sur la région ou des décalages de fuseaux horaires.

spark.sql.shuffle.partitions

auto

Nombre de partitions default à utiliser lors du brassage des données pour les jointures ou les agrégations.

spark.sql.ansi.enabled

true

Si la valeur est vraie, Spark SQL utilise un dialecte conforme à ANSI au lieu d'être conforme à Hive.

spark.sql.files.maxPartitionBytes

134217728 (128 Mo)

Le nombre maximal d’octets à regrouper dans une seule partition lors de la lecture des fichiers.

Propriété

Par défaut

Description

spark.databricks.execution.timeout

9000 (applicable uniquement aux Notebooks)

Le délai d'expiration de l'exécution, en secondes, pour les queries Spark Connect. La valeur par default est uniquement applicable pour les queries de Notebook. Les administrateurs de workspace peuvent modifier la valeur par défaut pour les notebooks Serverless dans les paramètres d'administration du workspace. Voir la protection contre le dépassement de budget Serverless. Pour les Jobs exécutés sur le compute Serverless (et les Jobs exécutés sur le compute standard classique), il n'y a pas de délai d'expiration à moins que cette propriété ne soit définie.

spark.sql.legacy.timeParserPolicy

CORRECTED

La politique d'analyseur de temps.

spark.sql.session.timeZone

Etc/UTC

L'ID du fuseau horaire local de la session, au format des ID de fuseaux horaires basés sur la région ou des décalages de fuseaux horaires.

spark.sql.shuffle.partitions

auto

Nombre de partitions default à utiliser lors du brassage des données pour les jointures ou les agrégations.

spark.sql.ansi.enabled

true

Si la valeur est vraie, Spark SQL utilise un dialecte conforme à ANSI au lieu d'être conforme à Hive.

spark.sql.files.maxPartitionBytes

134217728 (128 Mo)

Le nombre maximal d’octets à regrouper dans une seule partition lors de la lecture des fichiers.

Propriétés Spark non prises en charge

Les propriétés de configuration Spark suivantes ne sont pas prises en charge dans Databricks. Les propriétés Spark non prises en charge sont soit ignorées par Databricks, soit peuvent provoquer des conflits et des échecs lorsqu'elles sont utilisées simultanément avec les fonctionnalités Databricks. Si vous migrez des charges de travail vers Databricks, remplacez les propriétés non prises en charge par les alternatives recommandées.

remarque

En plus des propriétés listées ici, le mode d'accès standard sur Databricks Runtime 19 et versions supérieures limite certaines propriétés de configuration Spark. La création ou la modification d'un cluster qui définit une propriété restreinte échoue avec une erreur. Consultez les limitations de configuration Spark.

Propriétés Spark non prises en charge

S'applique à

Alternative Databricks

spark.dynamicAllocation.enabled

spark.dynamicAllocation.initialExecutors

spark.dynamicAllocation.minExecutors

spark.dynamicAllocation.maxExecutors

spark.dynamicAllocation.executorIdleTimeout

Classic Compute

Configurez l'évolutivité automatique Databricks à la place, qui gère le cycle de vie des exécuteurs au niveau de la plateforme. Consultez Activer le dimensionnement automatique.

spark.master

spark.driver.host

spark.driver.port

Compute Serverless et LakeFlow Pipelines

L'infrastructure Serverless de Databricks gère automatiquement ces propriétés de connexion internes. Elles ne peuvent pas être définies par les utilisateurs. Les définir sur un compute Serverless ou des LakeFlow Pipelines entraîne une erreur.

spark.jars

Compute Serverless et LakeFlow Pipelines

Databricks ne prend pas en charge l’attachement de JARs au compute serverless ou aux LakeFlow Pipelines utilisant les configurations Spark, mais vous pouvez exécuter des tâches JAR serverless. Voir Configurer l'environnement pour les tâches de job.

spark.databricks.runtimeoptions.*

Classic Compute

Utilisez plutôt l'attribut runtime_options dans la configuration du cluster. Les options Runtime ne peuvent pas être définies comme configuration Spark sur un type de cluster. Tenter de les définir à l'aide des configurations Spark entraîne une erreur.

Propriétés Spark non prises en charge

S'applique à

Alternative Databricks

spark.dynamicAllocation.enabled

spark.dynamicAllocation.initialExecutors

spark.dynamicAllocation.minExecutors

spark.dynamicAllocation.maxExecutors

spark.dynamicAllocation.executorIdleTimeout

Classic Compute

Configurez l'évolutivité automatique Databricks à la place, qui gère le cycle de vie des exécuteurs au niveau de la plateforme. Consultez Activer le dimensionnement automatique.

spark.master

spark.driver.host

spark.driver.port

Compute Serverless et LakeFlow Pipelines

L'infrastructure Serverless de Databricks gère automatiquement ces propriétés de connexion internes. Elles ne peuvent pas être définies par les utilisateurs. Les définir sur un compute Serverless ou des LakeFlow Pipelines entraîne une erreur.

spark.jars

Compute Serverless et LakeFlow Pipelines

Databricks ne prend pas en charge l’attachement de JARs au compute serverless ou aux LakeFlow Pipelines utilisant les configurations Spark, mais vous pouvez exécuter des tâches JAR serverless. Voir Configurer l'environnement pour les tâches de job.

spark.databricks.runtimeoptions.*

Classic Compute

Utilisez plutôt l'attribut runtime_options dans la configuration du cluster. Les options Runtime ne peuvent pas être définies comme configuration Spark sur un type de cluster. Tenter de les définir à l'aide des configurations Spark entraîne une erreur.

Obtenir le paramètre actuel pour une configuration Spark

Utilisez la syntaxe suivante pour examiner le paramètre actuel d'une configuration Spark :

Python
spark.conf.get("configuration_name")