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. |
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
- Python
- Scala
SET spark.sql.ansi.enabled = true
spark.conf.set("spark.sql.ansi.enabled", "true")
spark.conf.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 :
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 |
|---|---|---|
|
| 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. |
|
| La politique d'analyseur de temps. |
|
| 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. |
|
| Nombre de partitions default à utiliser lors du brassage des données pour les jointures ou les agrégations. |
|
| Si la valeur est vraie, Spark SQL utilise un dialecte conforme à ANSI au lieu d'être conforme à Hive. |
| 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.
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 |
|---|---|---|
| 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. |
| 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. |
| 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. |
| Classic Compute | Utilisez plutôt l'attribut |
Obtenir le paramètre actuel pour une configuration Spark
Utilisez la syntaxe suivante pour examiner le paramètre actuel d'une configuration Spark :
spark.conf.get("configuration_name")