Développer du code dans les notebooks Databricks
Les Notebooks Databricks prennent en charge le formatage de code, l'autocomplétion, plusieurs langages et les commandes magiques pour le développement de code en Python, SQL, Scala et R.
Pour plus de détails sur les fonctionnalités avancées disponibles avec l'éditeur, telles que la complétion automatique, la sélection de variables, la prise en charge multi-curseurs et les comparaisons côte à côte, consultez Naviguer dans l'éditeur de notebook et de fichiers Databricks.
Lorsque vous utilisez le notebook ou l'éditeur de fichiers, Genie Code est disponible pour vous aider à générer, expliquer et déboguer le code. Voir utiliser Genie Code pour plus d'informations.
Les Notebooks Databricks incluent également un débogueur interactif intégré pour les Notebooks Python. Voir Déboguer les Notebooks Databricks.
Le Notebook doit être attaché à une session de compute active pour les fonctionnalités d'assistance au code, y compris l'autocomplétion, le formatage du code Python et le débogueur.
Modularisez votre code
Avec Databricks Runtime 11.3 LTS ou supérieur, vous pouvez créer et gérer des fichiers de code source dans le workspace Databricks, puis importer ces fichiers dans vos notebooks au besoin.
Pour plus d'informations sur l'utilisation des fichiers de code source, consultez Partager le code entre les notebooks Databricks et Utiliser les modules Python et R.
Formater les cellules de code
Databricks fournit des outils qui vous permettent de formater le code Python et SQL dans les cellules de Notebook. Ces outils réduisent l'effort pour maintenir votre code formaté et aident à appliquer les mêmes normes de codage dans tous vos Notebooks.
Bibliothèque du formateur Python black
Aperçu
Cette fonctionnalité est en aperçu public.
Databricks prend en charge le formatage de code Python à l'aide de black dans le notebook. Le notebook doit être associé à un cluster avec les packages Python black et tokenize-rt installés.
Sur Databricks Runtime 11.3 LTS et versions supérieures, Databricks préinstalle black et tokenize-rt. Vous pouvez utiliser le formateur directement sans avoir besoin d'installer ces bibliothèques.
Sur Databricks Runtime 10.4 LTS et versions antérieures, vous devez installer black==22.3.0 et tokenize-rt==4.2.1 depuis PyPI sur votre Notebook ou cluster pour utiliser le formateur Python. Vous pouvez exécuter la commande suivante dans votre Notebook :
%pip install black==22.3.0 tokenize-rt==4.2.1
ou installez la bibliothèque sur votre cluster.
Pour plus de détails sur l'installation de bibliothèques, veuillez consulter Gestion de l'environnement Python.
Pour les fichiers et Notebooks dans les dossiers Git Databricks, vous pouvez configurer le formateur Python en fonction du fichier pyproject.toml. Pour utiliser cette fonctionnalité, créez un fichier pyproject.toml dans le répertoire racine du dossier Git et configurez-le selon le format de configuration Black. Modifier le [tool.black] section dans le fichier. La configuration est appliquée lorsque vous formatez un fichier et un Notebook dans ce dossier Git.
Comment formater les cellules Python et SQL
Vous devez disposer de l'autorisation CAN EDIT sur le Notebook pour formater le code.
Databricks utilise un formateur SQL personnalisé pour formater le SQL et le formateur de code black pour Python.
Vous pouvez Trigger le formateur de plusieurs manières :
-
Formater une seule cellule.
-
Raccourci clavier : appuyez sur **Cmd+Shift+F**.
-
Menu contextuel de la commande :
- Mettre la cellule au format SQL : sélectionnez Format SQL dans le menu déroulant du contexte de commande d'une cellule SQL. Cet élément de menu est visible uniquement dans les cellules de Notebook SQL ou celles avec une magie linguistique
%sql. - Formater la cellule Python : sélectionnez Format Python dans le menu déroulant contextuel de commande d'une cellule Python. Cet élément de menu est visible uniquement dans les cellules de notebook Python ou celles avec un
%pythonmagic de langage.
- Mettre la cellule au format SQL : sélectionnez Format SQL dans le menu déroulant du contexte de commande d'une cellule SQL. Cet élément de menu est visible uniquement dans les cellules de Notebook SQL ou celles avec une magie linguistique
-
Menu Modifier du Notebook : sélectionnez une cellule Python ou SQL, puis sélectionnez Modifier > Mettre en forme les cellules .
-
-
Formatage de plusieurs cellules
Sélectionnez plusieurs cellules, puis sélectionnez Modifier > Formater la/les cellule(s) . Si vous sélectionnez des cellules de plus d'une langue, seules les cellules SQL et Python sont formatées. Cela inclut ceux qui utilisent
%sqlet%python. -
Formatez toutes les cellules Python et SQL dans le Notebook
Sélectionnez Modifier > Formater le notebook . Si votre notebook contient plus d'une langue, seules les cellules SQL et Python sont formatées. Cela inclut celles qui utilisent
%sqlet%python.
Pour personnaliser la façon dont vos queries SQL sont formatées, consultez Formater les instructions SQL personnalisées.
Limitations du formatage de code
- Black applique les normes PEP 8 pour une indentation de 4 espaces. L'indentation n'est pas configurable.
- Le formatage des chaînes Python intégrées à l'intérieur d'une UDF SQL n'est pas pris en charge. De même, le formatage des chaînes SQL à l'intérieur d'une UDF Python n'est pas pris en charge.
Langages de code dans les notebooks
Définir la langue par default
La langue default du Notebook apparaît sous le nom du Notebook.

Pour changer la langue default, cliquez sur le bouton de langue et sélectionnez la nouvelle langue dans le menu déroulant. Pour s'assurer que les commandes existantes continuent de fonctionner, les commandes de la langue default précédente sont automatiquement préfixées par une commande magique de langage.
Mélanger les langues
Par default, les cellules utilisent la langue par default du notebook. Vous pouvez remplacer la langue par default dans une cellule en cliquant sur le bouton de langue et en sélectionnant une langue dans le menu déroulant.

Vous pouvez également utiliser la commande magique de langue %<language> au début d'une cellule. Les commandes magiques prises en charge sont : %python, %r, %scala, et %sql.
Lorsque vous invoquez une commande magique de langage, la commande est expédiée au REPL dans le contexte d'exécution du Notebook. Les variables définies dans un langage (et donc dans le REPL pour ce langage) ne sont pas disponibles dans le REPL d'un autre langage. Les REPL peuvent partager l'état uniquement par le biais de ressources externes telles que des fichiers dans DBFS ou des objets dans le stockage d'objets.
Les notebooks prennent également en charge quelques commandes magiques auxiliaires :
%sh: Vous permet d'exécuter du code shell dans votre notebook. Pour faire échouer la cellule si la commande shell a un statut de sortie non nul, ajoutez l'option-e. Cette commande s'exécute uniquement sur le driver Apache Spark, et non sur les workers. Pour exécuter une commande shell sur tous les nœuds, utilisez un script d'initialisation.%fs: Vous permet d'utiliser les commandes du système de fichiersdbutils. Par exemple, pour exécuter la commandedbutils.fs.lsafin de lister les fichiers, vous pouvez spécifier%fs lsà la place. Pour plus d'informations, consultez Travailler avec des fichiers sur Databricks.%md: Vous permet d'inclure divers types de documentation, y compris du texte, des images, et des formules et équations mathématiques. Consultez la section suivante.
Mise en surbrillance de la syntaxe SQL et saisie semi-automatique dans les commandes Python
La coloration syntaxique et l’ autocomplete SQL sont disponibles lorsque vous utilisez SQL dans une commande Python, comme dans une commande spark.sql.
Explorer les résultats des cellules SQL
Dans un notebook Databricks, les résultats d'une cellule de langage SQL sont automatiquement mis à disposition comme un DataFrame implicite attribué à la variable _sqldf. Vous pouvez ensuite utiliser cette variable dans toutes les cellules Python et SQL que vous exécutez par la suite, quelle que soit leur position dans le notebook.
Cette fonctionnalité présente les limitations suivantes :
- La variable
_sqldfn'est pas disponible dans les Notebooks qui utilisent un SQL Warehouse pour le compute. - L'utilisation de
_sqldfdans les cellules Python suivantes est prise en charge dans Databricks Runtime 13,3 et les versions ultérieures. - L'utilisation de
_sqldfdans les cellules SQL suivantes n'est prise en charge que sur Databricks Runtime 14,3 et versions ultérieures. - Si la query utilise les mots-clés
CACHE TABLEouUNCACHE TABLE, la variable_sqldfn'est pas disponible.
La capture d'écran ci-dessous montre comment _sqldf peut être utilisé dans des cellules Python et SQL ultérieures :

La variable _sqldf est réaffectée chaque fois qu'une cellule SQL est exécutée. Pour éviter de perdre la référence à un résultat de DataFrame spécifique, attribuez-le à un nouveau nom de variable avant d'exécuter la prochaine cellule SQL :
- Python
- SQL
new_dataframe_name = _sqldf
ALTER VIEW _sqldf RENAME TO new_dataframe_name
Exécuter des cellules SQL en parallèle
Pendant qu'une commande est en cours d'exécution et que votre Notebook est attaché à un cluster interactif, vous pouvez exécuter une cellule SQL simultanément avec la commande actuelle. La cellule SQL est exécutée dans une nouvelle session parallèle.
Pour exécuter une cellule en parallèle :
-
Cliquez sur **Exécuter maintenant**. La cellule est immédiatement exécutée.

Étant donné que la cellule est exécutée dans une nouvelle session, les vues temporaires, les UDF et le DataFrame Python implicite (_sqldf) ne sont pas pris en charge pour les cellules exécutées en parallèle. De plus, les noms de catalogue et de base de données par default sont utilisés pendant l'exécution parallèle. Si votre code fait référence à une table dans un autre catalogue ou une autre base de données, vous devez spécifier le nom de la table en utilisant l'espace de noms à trois niveaux (catalog.schema.table).
Exécuter des cellules SQL sur un SQL Warehouse
Vous pouvez exécuter des commandes SQL dans un notebook Databricks sur un SQL Warehouse, un type de compute optimisé pour l'analytique SQL. Consultez Utiliser un notebook avec un SQL Warehouse.
Utiliser des commandes magiques
Les Notebooks Databricks prennent en charge diverses commandes magiques qui étendent les fonctionnalités au-delà de la syntaxe standard afin de simplifier les tâches courantes. Les commandes magiques de ligne sont préfixées par % et s'appliquent à une seule ligne. Les commandes magiques de cellule sont préfixées par %% et s'appliquent à l'ensemble du corps de la cellule.
Commande magique | Exemple | Description |
|---|---|---|
|
| Basculez le langage de la cellule vers Python. Exécute le code Python dans la cellule. |
|
| Changez le langage de la cellule en R. Exécute le code R dans la cellule. |
|
| Basculez le langage de la cellule vers Scala. Exécute le code Scala dans la cellule. |
|
| Changez le langage de la cellule en SQL. Les résultats sont disponibles sous la forme |
|
| Basculez le langage de cellule vers Markdown. Affiche le contenu Markdown dans la cellule. Prend en charge le texte, les images, les formules et LaTeX. |
|
| Installer des packages Python (limités au Notebook). Consultez Bibliothèques Python limitées au Notebook. |
|
| Exécutez un autre Notebook, en important ses fonctions et ses variables. Voir les workflows de Notebook. |
|
| Exécutez les commandes dbutils filesystem. Abréviation pour |
|
| Exécutez les commandes Shell. S'exécute uniquement sur le nœud du driver. Utilisez |
|
| Afficher l'interface utilisateur TensorBoard en ligne. Disponible uniquement sur Databricks Runtime ML. See TensorBoard. |
|
| Définir la taille maximale de la sortie de cellule. Plage : 1 à 20 Mo. S'applique à toutes les cellules suivantes dans le notebook. |
|
| Ignorer l'exécution de la cellule. Empêche l’exécution de la cellule lorsque le Notebook est exécuté. |
|
| Profiler l'exécution du code Python. Affiche un arbre d'appels hiérarchique avec des informations de chronométrage. Nécessite Databricks Runtime 17.2 ou une version ultérieure. |
|
| Profiler la création d'objets lors de l'exécution des cellules. Affiche une table de nouveaux objets nets créés, regroupés par type. Nécessite Databricks Runtime 17.2 ou une version ultérieure. |
|
| Installez et gérez les packages Python (limités au Notebook) avec |
IPython Automagic : Les Notebook Databricks ont l'automagic IPython activé par default, permettant à certaines commandes comme pip de fonctionner sans le préfixe %. Par exemple, pip install pandas fonctionne de la même manière que %pip install pandas.
- Les variables et l'état sont isolés entre différents REPL de langage. Par exemple, les variables Python ne sont pas accessibles dans les cellules Scala.
- Une cellule de Notebook ne peut avoir qu'une seule commande magique de cellule, et elle doit être la première ligne de la cellule.
%rundoit être dans une cellule à part, car il exécute le notebook entier en ligne.- Lorsque vous utilisez
%pipsur Databricks Runtime 12.2 LTS et versions antérieures, placez toutes les commandes d’installation de package au début de votre notebook, car l’état Python est Reset après l’installation.