Utiliser Spark dans les notebooks

Effectué

Vous pouvez exécuter de nombreux types d’applications différents sur Spark, notamment du code dans des scripts Python ou Scala, du code Java compilé en tant qu’archive Java (JAR) et bien d’autres. Spark est couramment utilisé dans deux types de charge de travail :

  • Travaux de traitement par lots ou en streaming pour ingérer, nettoyer et transformer des données, souvent exécutées dans le cadre d’un pipeline automatisé.
  • Sessions d’analytique interactive pour explorer, analyser et visualiser des données.

Notions de base sur l'édition de carnets et le code

Les notebooks Databricks sont l’espace de travail principal pour la science des données, l’ingénierie et l’analytique. Ils sont construits autour de cellules, qui peuvent contenir du code ou du texte mis en forme (Markdown). Cette approche basée sur des cellules facilite l’expérimentation, le test et l’explication de votre travail à un seul endroit. Vous pouvez exécuter une seule cellule, un groupe de cellules ou l’intégralité du bloc-notes, avec des sorties telles que des tableaux, des graphiques ou du texte brut qui apparaissent directement sous la cellule exécutée. Les cellules peuvent être réorganisées, réduites ou effacées pour maintenir votre cahier organisé et lisible.

Capture d’écran d’un notebook dans Azure Databricks.

Une des principales forces des notebooks Databricks est la prise en charge multilingue. Bien que la valeur par défaut soit souvent Python, vous pouvez basculer vers SQL, Scala ou R dans le même notebook à l’aide de commandes magiques telles que %sql ou %scala. Cette flexibilité signifie que vous pouvez écrire une logique ETL dans SQL, du code Machine Learning en Python, puis visualiser les résultats avec R, tout en un seul flux de travail. Databricks fournit également l'autocomplétion et la mise en surbrillance de la syntaxe, ce qui facilite la détection des erreurs et l'accélération du codage.

Avant d’exécuter du code, un bloc-notes doit être attaché à un cluster. Sans cluster attaché, les cellules de code ne peuvent pas être exécutées. Vous pouvez sélectionner un cluster existant dans la barre d’outils du bloc-notes ou en créer un, et vous pouvez facilement détacher et détacher des blocs-notes selon les besoins. Cette connexion permet à votre notebook de tirer parti de la puissance de traitement distribuée dans Azure Databricks.

Utilisation de l’Assistant Databricks

L’Assistant Databricks est un compagnon de codage basé sur l’IA intégré directement aux notebooks. Son objectif est de vous aider à écrire, comprendre et améliorer le code plus efficacement en tirant parti du contexte de votre notebook et de votre espace de travail. Il peut générer un nouveau code à partir d’invites en langage naturel, expliquer une logique complexe, suggérer des correctifs pour les erreurs, optimiser les performances et même refactoriser ou mettre en forme votre code pour la lisibilité. Cela rend utile non seulement pour les débutants qui apprennent Spark ou SQL, mais aussi pour les utilisateurs expérimentés qui souhaitent accélérer le développement et réduire le travail répétitif.

L’assistant prend en charge le contexte, ce qui signifie qu’il peut utiliser des informations sur votre notebook, votre cluster et votre environnement de données pour fournir des suggestions personnalisées. Par exemple, si le catalogue Unity est activé pour votre espace de travail, il peut extraire des métadonnées telles que les noms de table, les noms de colonnes et les schémas lors de l’écriture de requêtes SQL. Cela vous permet de demander quelque chose comme « Sélectionner le montant moyen des ventes par région dans la table des ventes » et obtenir du code SQL fonctionnel qui correspond à votre modèle de données réel. De même, en Python, vous pouvez lui demander de créer des transformations de données ou des travaux Spark sans avoir à rappeler chaque signature de fonction à partir de la mémoire.

Vous interagissez avec l’Assistant de deux façons principales :

  1. Invites en langage naturel : vous pouvez taper des instructions en anglais brut dans l’interface de type conversation et insérer du code dans votre bloc-notes.

  2. Commandes obliques : commandes rapides telles que /explain, /fixou /optimize qui vous permettent d’agir sur le code sélectionné. Par exemple, /explain décompose une fonction complexe en étapes plus simples, /fix peut tenter de résoudre des erreurs de syntaxe ou d’exécution et /optimize suggérer des améliorations des performances telles que le repartitionnement ou l’utilisation de fonctions Spark efficaces.

Capture d’écran de l’Assistant IA dans un notebook Azure Databricks.

Une fonctionnalité puissante est le mode d’édition, où l’Assistant peut proposer des modifications structurelles plus importantes sur plusieurs cellules. Par exemple, il peut refactoriser une logique répétée en une seule fonction réutilisable ou restructurer un flux de travail pour une meilleure lisibilité. Vous avez toujours un contrôle : les suggestions sont non destructeurs, ce qui signifie que vous pouvez les examiner et les accepter ou les rejeter avant d’appliquer des modifications à votre bloc-notes.

Partage et modularisation du code

Pour éviter la duplication et améliorer la maintenance, Databricks prend en charge la mise en place de code réutilisable dans des fichiers (par exemple, des modules .py) dans l’espace de travail, que les notebooks peuvent importer. Il existe des mécanismes pour orchestrer des notebooks (autrement dit, exécuter des notebooks à partir d’autres notebooks ou des travaux avec plusieurs tâches), afin de créer des flux de travail qui utilisent des fonctions ou des modules partagés. L’utilisation %run est un moyen plus simple d’inclure un autre bloc-notes, mais avec certaines limitations.

Débogage, historique des versions et annulation d’erreurs

Databricks offre un débogueur interactif intégré pour les notebooks Python : vous pouvez définir des points d’arrêt, parcourir l’exécution, inspecter des variables et parcourir l’exécution du code pas à pas. Cela permet d’isoler les bogues plus efficacement que le débogage par impression/journalisation.

Capture d’écran annotée de la barre d’outils du débogueur dans le notebook Azure Databricks.

Les blocs-notes gèrent également automatiquement l’historique des versions : vous pouvez afficher les instantanés passés, fournir des descriptions de version, restaurer les anciennes versions ou supprimer/effacer l’historique. Si vous utilisez l’intégration Git, vous pouvez synchroniser et mettre en version des notebooks/fichiers dans votre référentiel.

Capture d’écran de l’historique des versions de restauration dans le notebook Azure Databricks.

Conseil

Pour plus d’informations sur l’utilisation des notebooks dans Azure Databricks, consultez l’article Notebooks dans la documentation Azure Databricks.