Développer du code dans les notebooks Databricks

Cette page explique comment développer du code dans des notebooks Databricks, notamment l’autocomplétion, la mise en forme automatique pour Python et SQL, la combinaison de Python et de SQL dans un notebook et le suivi de l’historique des révisions du notebook.

Accéder au notebook pour le modifier

Pour ouvrir un notebook, utilisez la fonction de recherche de l’espace de travail ou utilisez le navigateur de l’espace de travail pour accéder au notebook et cliquez sur son nom ou son icône.

Raccourcis clavier

Pour afficher les raccourcis clavier, sélectionnez Aide > Raccourcis clavier. Les raccourcis clavier disponibles varient selon que le curseur se trouve dans une cellule de code (mode édition) ou non (mode commande).

Rechercher et remplacer du texte

Pour rechercher et remplacer du texte dans un notebook, sélectionnez Modifier > Rechercher et remplacer. La correspondance actuelle est mise en surbrillance en orange et toutes les autres correspondances sont mises en surbrillance en jaune.

Texte correspondant

Pour remplacer la correspondance actuelle, cliquez sur Remplacer. Pour remplacer toutes les correspondances dans le notebook, cliquez sur Remplacer tout.

Pour vous déplacer entre les correspondances, cliquez sur les boutons Précédent et Suivant. Vous pouvez également appuyer sur Maj + entrée et sur Entrée pour accéder aux correspondances précédentes et suivantes, respectivement.

Pour fermer l’outil rechercher et remplacer, cliquez sur l’Delete Icon ou appuyez sur Échap.

Autocomplétion

Vous pouvez utiliser l’autocomplétion Azure Databricks pour compléter automatiquement les segments de code au fur et à mesure que vous les tapez. Azure Databricks prend en charge deux types d’autocomplétion : local et serveur.

L’autocomplétion locale complète les mots qui sont définis dans le notebook. L’autocomplétion du serveur accède au cluster pour les types, les classes et les objets définis, ainsi que la base de données SQL et les tables. Pour activer l’autocomplétion du serveur, joignez votre notebook à un cluster et exécutez toutes les cellules qui définissent des objets pouvant faire l’objet d’une autocomplétion.

Important

L’autocomplétion du serveur dans les notebooks R est bloquée pendant l’exécution de la commande.

Pour déclencher l’autocomplétion appuyez sur Tabulation après avoir entré un objet pouvait faire l’objet d’une autocomplétion. Par exemple, une fois que vous avez défini et exécuté les cellules qui contiennent les définitions de MyClass et instance, les méthodes de instance peuvent faire l’objet d’une autocomplétion et une liste des complétions valides s’affiche lorsque vous appuyez sur Tabulation.

Déclencher l’autocomplétion

La finalisation de la base de données SQL et du nom de tableau, la finalisation du type, la mise en surbrillance de la syntaxe et l’autocomplétion SQL sont disponibles dans les cellules SQL et lorsque vous utilisez SQL à l’intérieur d’une commande Python, comme dans une commande spark.sql.

Complétion de type — — Complétion SQL

Dans Databricks Runtime 7.4 et versions ultérieures, vous pouvez afficher les conseils de docstring Python en appuyant sur Maj+Tab après avoir entré un objet Python complet. Le docstrings contient les mêmes informations que la fonction help() pour un objet.

docstring Python

Exécuter le texte sélectionné

Vous pouvez mettre du code ou des instructions SQL en surbrillance dans une cellule de notebook et exécuter uniquement cette sélection. Cela est utile quand vous souhaitez d’effectuer une itération rapidement sur le code et les requêtes.

  1. Mettez en surbrillance les lignes que vous souhaitez exécuter.

  2. Sélectionnez Exécuter > Exécuter le texte sélectionné ou utilisez le raccourci clavier Ctrl+Shift+Enter. Si aucun texte n’est mis en surbrillance, Exécuter le texte sélectionné exécute la ligne active.

    exécuter les lignes sélectionnées

Si vous utilisez plusieurs langages dans une cellule, vous devez inclure la ligne %<language> dans la sélection.

Exécuter le texte sélectionné exécute également le code réduit, si la sélection mise en surbrillance en contient.

Les commandes de cellule spéciales comme %run, %pip et %sh sont prises en charge.

Exécuter les limitations de texte sélectionnées

Vous ne pouvez pas utiliser Exécuter le texte sélectionné sur les cellules qui ont plusieurs onglets de sortie (c’est-à-dire les cellules dans lesquelles vous avez défini un profil de données ou une visualisation).

Si vous n’utilisez pas le nouvel éditeur de notebook, Exécuter le texte sélectionné fonctionne uniquement en mode édition (c’est-à-dire quand le curseur se trouve dans une cellule de code). Si le curseur se trouve en dehors de la cellule avec le texte sélectionné, Exécuter le texte sélectionné ne fonctionne pas. Pour éviter cette limitation, activez le nouvel éditeur de notebook.

Mettre en forme des cellules de code

Azure Databricks fournit des outils permettant de mettre en forme le code Python et SQL rapidement et facilement dans des cellules de notebook. Ces outils réduisent l’effort de mise en forme de votre code et d’application des mêmes normes de codage dans vos notebooks.

Mettre en forme les cellules Python

Important

Cette fonctionnalité est disponible en préversion publique.

Azure Databricks prend en charge la mise en forme du code Python à l’aide de Black dans le notebook. Le notebook doit être joint à un cluster sur lequel des packages Python black et tokenize-rt sont installés. Le formateur Black s’exécute sur le cluster auquel le notebook est joint.

Sur Databricks Runtime 11.2 et versions ultérieures, Azure Databricks préinstalle black et tokenize-rt. Vous pouvez utiliser le formateur directement sans qu’il soit nécessaire d’installer ces bibliothèques.

Sur Databricks Runtime 11.1 et versions ultérieures, vous devez installer black==22.3.0 et tokenize-rt==4.2.1 à partir de 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 Installer la bibliothèque sur votre cluster.

Pour plus d’informations sur l’installation des bibliothèques, consultez Gestion de l’environnement Python.

Guide pratique pour mettre en forme des cellules Python et SQL

Vous devez disposer de l’autorisation de modifier sur le notebook pour mettre en forme le code.

Vous pouvez déclencher l’outil de mise en forme des manières suivantes :

  • Mettre en forme une cellule unique

    • Raccourci clavier : appuyez sur Cmd + Maj + F.
    • Menu contextuel de commande :
      • Mettre en forme la cellule SQL : sélectionnez Mettre en forme le code SQL dans le menu contextuel déroulant de la commande d’une cellule SQL. Cet élément de menu est visible uniquement dans les cellules de notebook SQL ou celles contenant une %sqlcommande magic de langage.
      • Mettre en forme la cellule Python : sélectionnez Mettre en forme les cellules Python dans le menu contextuel déroulant de la commande d’une cellule Python. Cet élément de menu est visible uniquement dans les cellules de notebook Python ou celles contenant une %pythoncommande magic de langage.
    • Menu Modifier le notebook : sélectionnez une cellule Python ou SQL, puis sélectionnez Modifier > Mettre en forme les cellules.
  • Mettre en forme plusieurs cellules

    Sélectionnez plusieurs cellules, puis sélectionnez Modifier > Mettre en forme les cellules. Si vous sélectionnez des cellules de plusieurs langages, seules les cellules SQL et Python sont mises en forme. Il s’agit notamment de celles qui utilisent %sql et %python.

  • Mettre en forme toutes les cellules Python et SQL dans le notebook

    Sélectionnez Modifier > Mettre en forme le notebook. Si votre notebook contient plusieurs langages, seules les cellules SQL et Python sont mises en forme. Il s’agit notamment de celles qui utilisent %sql et %python.

Limitations de la mise en forme du code

  • Black applique les normes PEP 8 pour la mise en retrait à 4 espaces. La mise en retrait n’est pas configurable.
  • La mise en forme de chaînes Python au sein d’une fonction UDF SQL n’est pas prise en charge. De même, la mise en forme de chaînes SQL au sein d’une fonction UDF Python n’est pas prise en charge.

Historique des versions

Les notebooks Azure Databricks conservent un historique des versions du notebook, ce qui vous permet d’afficher et de restaurer les captures instantanées précédentes du notebook. Vous pouvez effectuer les actions suivantes sur les versions : ajouter des commentaires, restaurer et supprimer des versions et effacer l’historique des versions.

Vous pouvez également synchroniser votre travail dans Databricks avec un référentiel Git distant.

Pour accéder aux versions du notebook, cliquez sur l’icône d’historique des révisions dans la barre latérale droite. L’historique des révisions du notebook s’affiche. Vous pouvez également sélectionner Fichier > Historique des versions.

Ajouter un commentaire

Pour ajouter un commentaire à la version la plus récente :

  1. Cliquez sur la version.

  2. Cliquez sur Enregistrer maintenant.

    Enregistrer un commentaire

  3. Dans la boîte de dialogue Enregistrer la révision du notebook entrez un commentaire.

  4. Cliquez sur Enregistrer. La version du notebook est enregistrée avec le commentaire saisi.

Restaurer une version

Pour restaurer une version :

  1. Cliquez sur la version.

  2. Cliquez sur Restaurer cette révision.

    Restaurer une révision

  3. Cliquez sur Confirmer. La révision sélectionnée devient la dernière version du notebook.

Supprimer une version

Pour supprimer une entrée de version :

  1. Cliquez sur la version.

  2. Cliquez sur l’icône de corbeille Trash.

    Supprimer une révision

  3. Cliquez sur Oui, effacer. La version sélectionnée est supprimée de l’historique.

Effacer l’historique des versions

L’historique des versions ne peut pas être récupéré une fois qu’il a été effacé.

Pour effacer l’historique des versions d’un notebook :

  1. Sélectionnez Fichier > Effacer l’historique des versions.
  2. Cliquez sur Oui, effacer. L’historique de révision du notebook est effacé.

Langages de code dans les notebooks

Configurer la langue par défaut

La langue par défaut du notebook apparaît à côté du nom du notebook.

Langage par défaut du notebook

Pour modifier le langage par défaut, cliquez sur le bouton langage et sélectionnez le nouveau langage dans le menu déroulant. Pour vous assurer que les commandes existantes continuent de fonctionner, les commandes de langage par défaut précédentes sont automatiquement précédées d’une commande magic de langage.

Mélanger les langages

Par défaut, les cellules utilisent le langage par défaut du notebook. Vous pouvez modifier le langage par défaut dans une cellule en cliquant sur le bouton Langage et en sélectionnant un langage dans la liste déroulante.

Menu déroulant de langage de cellule

Vous pouvez également utiliser la commande magic de langage %<language> au début d’une cellule. Les commandes magic prises en charge sont les suivantes : %python, %r, %scala et %sql.

Notes

Lorsque vous appelez une commande magic de langage, la commande est distribuée à la REPL dans le contexte d’exécution du notebook. Les variables définies dans un langage (et par conséquent dans la REPL pour ce langage) ne sont pas disponibles dans la REPL d’un autre langage. Les REPLS peuvent partager l’état uniquement via des ressources externes telles que des fichiers dans DBFS ou des objets dans le stockage d’objets.

Les notebooks prennent également en charge quelques commandes magic auxiliaires :

  • %sh : vous permet d’exécuter du code Shell dans votre notebook. Pour faire échouer la cellule si la commande de l’interpréteur de commandes a un état de sortie différent de zéro, ajoutez l’option -e. Cette commande s’exécute uniquement sur le pilote Apache Spark, et non sur les threads de travail. Pour exécuter une commande d’interpréteur de commandes sur tous les nœuds, utilisez un script init.
  • %fs : vous permet d’utiliser les commandes du système de fichiers dbutils. Par exemple, pour exécuter la commande dbutils.fs.ls pour répertorier les fichiers, vous pouvez spécifier %fs ls à la place. Pour plus d’informations, consultez Comment travailler avec les fichiers sur Azure Databricks.
  • %md : Vous permet d’inclure différents types de documentation, notamment du texte, des images, des formules mathématiques et des équations. Voir la section suivante.

Mise en surbrillance de la syntaxe SQL et autocomplétion dans les commandes Python

La coloration syntaxique et l’autocomplétion SQL sont disponibles lorsque vous utilisez SQL dans une commande Python, comme dans une commande spark.sql.

Explorer des résultats des cellules SQL dans des notebooks Python en mode natif à l’aide de Python

Vous pouvez charger des données à l’aide de SQL et les explorer à l’aide de Python. Dans un notebook Databricks Python, les résultats de table d’une cellule en langage SQL sont automatiquement rendues disponibles en tant que DataFrame Python. Le nom du DataFrame Python est _sqldf.

Notes

  • Dans les notebooks Python, le DataFrame _sqldf n’est pas enregistré automatiquement et est remplacé par les résultats de l’exécution de cellule SQL la plus récente. Pour enregistrer le DataFrame, exécutez ce code dans une cellule Python :

    new_dataframe_name = _sqldf
    
  • Si la requête utilise un widget pour le paramétrage, les résultats ne sont pas disponibles en tant que DataFrame Python.

  • Si la requête utilise les mots clés CACHE TABLE ou UNCACHE TABLE, les résultats ne sont pas disponibles en tant que DataFrame Python.

La capture d’écran montre un exemple :

dataframe de résultats sql

Afficher les images

Pour afficher les images stockées dans le FileStore, utilisez la syntaxe suivante :

%md
![test](files/image.png)

Supposons, par exemple, que vous disposez du fichier image du logo Databricks dans le FileStore :

dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png

Lorsque vous incluez le code suivant dans une cellule Markdown :

Image dans une cellule Markdown

L’image est rendue dans la cellule :

Image rendue

Afficher les équations mathématiques

Les notebooks prennent en charge KaTeX pour l’affichage des formules mathématiques et des équations. Par exemple,

%md
\\(c = \\pm\\sqrt{a^2 + b^2} \\)

\\(A{_i}{_j}=B{_i}{_j}\\)

$$c = \\pm\\sqrt{a^2 + b^2}$$

\\[A{_i}{_j}=B{_i}{_j}\\]

devient :

Équation rendue 1

et

%md
\\( f(\beta)= -Y_t^T X_t \beta + \sum log( 1+{e}^{X_t\bullet\beta}) + \frac{1}{2}\delta^t S_t^{-1}\delta\\)

where \\(\delta=(\beta - \mu_{t-1})\\)

devient :

Équation rendue 2

Inclure du code HTML

Vous pouvez inclure du code HTML dans un notebook à l’aide de la fonction displayHTML. Pour obtenir un exemple de la procédure à suivre, consultez HTML, D3 et SVG dans les notebooks.

Notes

L’iframe displayHTML est traité à partir du domaine databricksusercontent.com et le bac à sable (sandbox) de l’iframe comprend l’attribut allow-same-origin. databricksusercontent.com doit être accessible à partir de votre navigateur. S’il est bloqué par votre réseau d’entreprise, il doit être ajouter dans une liste verte.

Vous pouvez créer un lien vers d’autres notebooks ou dossiers dans des cellules Markdown en utilisant des chemins d’accès relatifs. Spécifiez l’attribut href d’une balise d’ancrage en tant que chemin d’accès relatif, en commençant par un $, puis suivez le même modèle que dans les systèmes de fichiers Unix :

%md
<a href="$./myNotebook">Link to notebook in same folder as current notebook</a>
<a href="$../myFolder">Link to folder in parent folder of current notebook</a>
<a href="$./myFolder2/myNotebook2">Link to nested notebook</a>