Aller au contenu principal

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.

important

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

info

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 %python magic de langage.
    • 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 %sql et %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 %sql et %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.

Langue default 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.

Liste déroulante de la langue de la cellule

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.

remarque

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 fichiers dbutils. Par exemple, pour exécuter la commande dbutils.fs.ls afin 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.

remarque

Cette fonctionnalité présente les limitations suivantes :

  • La variable _sqldf n'est pas disponible dans les Notebooks qui utilisent un SQL Warehouse pour le compute.
  • L'utilisation de _sqldf dans les cellules Python suivantes est prise en charge dans Databricks Runtime 13,3 et les versions ultérieures.
  • L'utilisation de _sqldf dans 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 TABLE ou UNCACHE TABLE, la variable _sqldf n'est pas disponible.

La capture d'écran ci-dessous montre comment _sqldf peut être utilisé dans des cellules Python et SQL ultérieures :

dataframe des résultats SQL

important

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
new_dataframe_name = _sqldf

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 :

  1. Exécuter la cellule.

  2. Cliquez sur **Exécuter maintenant**. La cellule est immédiatement exécutée.

    Exécutez une cellule SQL en parallèle avec la cellule en cours d&#39;exécution.

É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

%python

%python
print("Hello")

Basculez le langage de la cellule vers Python. Exécute le code Python dans la cellule.

%r

%r
print("Hello")

Changez le langage de la cellule en R. Exécute le code R dans la cellule.

%scala

%scala
println("Hello")

Basculez le langage de la cellule vers Scala. Exécute le code Scala dans la cellule.

%sql

%sql
SELECT * FROM table

Changez le langage de la cellule en SQL. Les résultats sont disponibles sous la forme _sqldf dans les cellules Python/SQL.

%md

%md
# Title
Content here

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.

%pip

%pip install pandas

Installer des packages Python (limités au Notebook). Consultez Bibliothèques Python limitées au Notebook.

%run

%run /path/to/notebook

Exécutez un autre Notebook, en important ses fonctions et ses variables. Voir les workflows de Notebook.

%fs

%fs ls /path

Exécutez les commandes dbutils filesystem. Abréviation pour dbutils.fs commandes. Voir Utiliser des fichiers.

%sh

%sh ls -la

Exécutez les commandes Shell. S'exécute uniquement sur le nœud du driver. Utilisez -e pour échouer en cas d'erreur.

%tensorboard

%tensorboard --logdir /logs

Afficher l'interface utilisateur TensorBoard en ligne. Disponible uniquement sur Databricks Runtime ML. See TensorBoard.

%set_cell_max_output_size_in_mb

%set_cell_max_output_size_in_mb 10

Définir la taille maximale de la sortie de cellule. Plage : 1 à 20 Mo. S'applique à toutes les cellules suivantes dans le notebook.

%skip

%skip
print("This won't run")

Ignorer l'exécution de la cellule. Empêche l’exécution de la cellule lorsque le Notebook est exécuté.

%%profile

%%profile
my_function()

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.

%%oprofile

%%oprofile
my_function()

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.

%uv pip

%uv pip install simplejson

Installez et gérez les packages Python (limités au Notebook) avec uv et les sous-commandes pip standard (install, uninstall, list, show, freeze, check, tree). Consultez Installations plus rapides avec %uv pip.

Commande magique

Exemple

Description

%python

%python
print("Hello")

Basculez le langage de la cellule vers Python. Exécute le code Python dans la cellule.

%r

%r
print("Hello")

Changez le langage de la cellule en R. Exécute le code R dans la cellule.

%scala

%scala
println("Hello")

Basculez le langage de la cellule vers Scala. Exécute le code Scala dans la cellule.

%sql

%sql
SELECT * FROM table

Changez le langage de la cellule en SQL. Les résultats sont disponibles sous la forme _sqldf dans les cellules Python/SQL.

%md

%md
# Title
Content here

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.

%pip

%pip install pandas

Installer des packages Python (limités au Notebook). Consultez Bibliothèques Python limitées au Notebook.

%run

%run /path/to/notebook

Exécutez un autre Notebook, en important ses fonctions et ses variables. Voir les workflows de Notebook.

%fs

%fs ls /path

Exécutez les commandes dbutils filesystem. Abréviation pour dbutils.fs commandes. Voir Utiliser des fichiers.

%sh

%sh ls -la

Exécutez les commandes Shell. S'exécute uniquement sur le nœud du driver. Utilisez -e pour échouer en cas d'erreur.

%tensorboard

%tensorboard --logdir /logs

Afficher l'interface utilisateur TensorBoard en ligne. Disponible uniquement sur Databricks Runtime ML. See TensorBoard.

%set_cell_max_output_size_in_mb

%set_cell_max_output_size_in_mb 10

Définir la taille maximale de la sortie de cellule. Plage : 1 à 20 Mo. S'applique à toutes les cellules suivantes dans le notebook.

%skip

%skip
print("This won't run")

Ignorer l'exécution de la cellule. Empêche l’exécution de la cellule lorsque le Notebook est exécuté.

%%profile

%%profile
my_function()

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.

%%oprofile

%%oprofile
my_function()

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.

%uv pip

%uv pip install simplejson

Installez et gérez les packages Python (limités au Notebook) avec uv et les sous-commandes pip standard (install, uninstall, list, show, freeze, check, tree). Consultez Installations plus rapides avec %uv pip.

remarque

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.

important
  • 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.
  • %run doit être dans une cellule à part, car il exécute le notebook entier en ligne.
  • Lorsque vous utilisez %pip sur 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.