Partager via


Exécuter et déboguer des cellules de notebook avec Databricks Connect en utilisant l'extension Databricks pour Visual Studio Code

Vous pouvez exécuter et déboguer les notebooks, une cellule à la fois ou toutes les cellules à la fois, et voir leurs résultats dans l'interface utilisateur de Visual Studio Code grâce à l'extension Databricks pour l'intégration Databricks Connect de Visual Studio Code. Tout le code s’exécute localement. En revanche, l’ensemble du code impliquant des opérations DataFrame s’exécute sur le cluster de l’espace de travail Azure Databricks distant, et les réponses d’exécution sont renvoyées à l’appelant local. Tout le code est débogué localement, alors que l’ensemble du code Spark continue de s’exécuter sur le cluster dans l’espace de travail Azure Databricks distant. Le code principal du moteur Spark ne peut pas être débogué directement à partir du client.

Remarque

Cette fonctionnalité fonctionne avec Databricks Runtime 13.3 et versions ultérieures.

Pour activer l'intégration de Databricks Connect pour les notebooks dans l'extension Databricks pour Visual Studio Code, vous devez installer Databricks Connect dans l'extension Databricks pour Visual Studio Code. Consultez Déboguer le code à l’aide de Databricks Connect pour l’extension Databricks pour Visual Studio Code.

Exécuter des cellules de notebook Python

Pour les notebooks dont les noms de fichiers ont une extension .py, lorsque vous ouvrez le notebook dans l'IDE Visual Studio Code, chaque cellule affiche les boutons Exécuter la cellule, Exécuter au-dessus et Déboguer la cellule. Lorsque vous exécutez une cellule, ses résultats sont affichés dans un onglet séparé de l'EDI. Pendant le débogage, la cellule en cours de débogage affiche les boutons Continue, Stop et Step Over. Lorsque vous déboguez une cellule, vous pouvez utiliser les fonctionnalités de débogage de Visual Studio Code, telles que l'observation des états des variables et l'affichage de la pile d'appels et de la console de débogage.

Pour les notebooks dont les noms de fichiers ont une extension .ipynb, lorsque vous ouvrez le notebook dans l'IDE Visual Studio Code, le notebook et ses cellules contiennent des fonctionnalités supplémentaires. Voir Exécution de cellules et Utilisation de cellules de code dans l'éditeur de bloc-notes.

Pour plus d’informations sur les formats de notebook pour les noms de fichiers avec les extensions .py et .ipynb, consultez Exporter et importer des notebooks Databricks.

Exécuter des cellules jupyter noteboook Python

Pour exécuter ou déboguer un notebook Jupyter Python (.ipynb) :

  1. Dans votre projet, ouvrez le notebook Jupyter Python que vous souhaitez exécuter ou déboguer. Vérifiez que le fichier Python est au format de notebook Jupyter et a l’extension .ipynb.

    Conseil

    Vous pouvez créer un bloc-notes Jupyter Python en exécutant la commande> Create: New Jupyter Notebook à partir de la palette de commandes.

  2. Cliquez sur Exécuter toutes les cellules pour exécuter toutes les cellules sans débogage, Exécuter la cellule pour exécuter une cellule correspondante individuelle sans débogage ou Exécuter par ligne pour exécuter une cellule individuelle ligne par ligne avec un débogage limité, avec des valeurs variables affichées dans le panneau Jupyter (Afficher > Ouvrir Voir > Jupyter).

    Pour un débogage complet dans une cellule individuelle, définissez des points d’arrêt, puis cliquez sur Déboguer la cellule dans le menu en regard du bouton Exécuter de la cellule.

    Après avoir cliqué sur l’une de ces options, vous pouvez être invité à installer les dépendances de package de notebook Jupyter Python manquantes. Cliquez pour l'installer.

    Pour plus d’informations, consultez Jupyter Notebooks dans VS Code.

Globals de notebooks

Les globaux de bloc-notes suivants sont également activés :

  • spark, représentant une instance de databricks.connect.DatabricksSession, est préconfiguré pour instancier DatabricksSession en obtenant les informations d’identification d’authentification Azure Databricks à partir de l’extension. Si DatabricksSession est déjà instancié dans le code d'une cellule de bloc-notes, ces paramètres DatabricksSession sont utilisés à la place. Voir Exemples de code pour Databricks Connect pour Python.

  • udf, préconfiguré en tant qu’alias pour pyspark.sql.functions.udf, qui est un alias pour les fonctions définies par l’utilisateur Python. Voir pyspark.sql.functions.udf.

  • sql, préconfiguré en tant qu’alias pour spark.sql. spark, comme décrit précédemment, représente une instance préconfigurée de databricks.connect.DatabricksSession. Voir Spark SQL.

  • dbutils, préconfiguré en tant qu’instance des utilitaires Databricks, qui est importé à partir de databricks-sdk et instancié en obtenant les informations d’identification d’authentification Azure Databricks à partir de l’extension. Voir Utiliser les utilitaires Databricks.

    Remarque

    Seul un sous-ensemble d’utilitaires Databricks est pris en charge pour les notebooks avec Databricks Connect.

    Pour activer dbutils.widgets, vous devez d’abord installer le SDK Databricks pour Python en exécutant la commande suivante dans le terminal de votre ordinateur de développement local :

    pip install 'databricks-sdk[notebook]'
    
  • display, préconfiguré en tant qu’alias pour le IPython.display.display intégré Jupyter. Voir IPython.display.display.

  • displayHTML, préconfiguré en tant qu’alias pour dbruntime.display.displayHTML, qui est un alias pour display.HTML de ipython. Voir IPython.display.html.

Magics du notebook

Les magies de notebook suivantes sont également activées :

Les fonctionnalités supplémentaires activées incluent :

  • Les DataFrames Spark sont convertis en DataFrames pandas, qui sont affichés au format de table Jupyter.

Limites

Les limitations de l’exécution de cellules dans des notebooks dans Visual Studio Code sont les suivantes :

  • Les blocs-notes magics %r et %scala ne sont pas pris en charge et affichent une erreur si elle est appelée. Voir Mélanger les langues.
  • La commande magique de notebook %sql ne prend pas en charge certaines commandes DML, telles que Afficher les tables.