Partager via


Azure Databricks pour les développeurs Python

Cette section fournit un guide pour le développement de notebooks et de travaux dans Azure Databricks à l’aide du langage Python, notamment des didacticiels pour les flux de travail et les tâches courants, ainsi que des liens vers des API, des bibliothèques et des outils.

Pour commencer :

Tutoriels

Les tutoriels ci-dessous fournissent des exemples de code et de notebooks pour en savoir plus sur les workflows courants. Consultez Importer un notebook pour obtenir des instructions sur l’importation d’exemples de notebooks dans votre espace de travail.

Engineering données

Science des données et machine learning

Déboguer dans les notebooks Python

L’exemple de notebook montre comment utiliser le débogueur Python (pdb) dans les notebooks Databricks. Pour utiliser le débogueur Python, vous devez exécuter Databricks Runtime 11.3 LTS ou une version ultérieure.

Avec Databricks Runtime 12.2 LTS (et les versions ultérieures), vous pouvez utiliser l’Explorateur de variables pour suivre la valeur actuelle des variables Python dans l’interface utilisateur du notebook. Vous pouvez utiliser l’Explorateur de variables pour observer les valeurs des variables Python à mesure que vous parcourez les points d’arrêt.

Exemple de notebook de débogueur Python

Obtenir le notebook

Notes

breakpoint() n’est pas pris en charge dans IPython et ne fonctionne donc pas dans les notebooks Databricks. Vous pouvez utiliser import pdb; pdb.set_trace() à la place de breakpoint().

API Python

Le code Python qui s’exécute en dehors de Databricks peut généralement s’exécuter dans Databricks, et vice versa. Si vous avez du code existant, importez-le simplement dans Databricks pour commencer. Pour plus d’informations, consultez Gérer le code avec des notebooks et les dossiers Databricks Git ci-dessous.

Databricks peut exécuter des charges de travail Python à machine unique et distribuées. Pour le calcul à machine unique, vous pouvez utiliser les API et bibliothèques Python comme vous en avez l’habitude ; par exemple, Pandas et scikit-learn « fonctionnent tels quels ». Pour les charges de travail Python distribuées, Databricks propose deux API populaires : PySpark et Pandas API on Spark.

API PySpark

PySpark est l’API Python officielle pour Apache Spark et combine la puissance de Python et d’Apache Spark. PySpark est plus flexible que l’API Pandas sur Spark et fournit une prise en charge et des fonctionnalités étendues pour la science des données et les fonctionnalités d’ingénierie comme Spark SQL, le flux structuré, MLLib et GraphX.

API Pandas sur Spark

Notes

Le projet open source Koalas recommande désormais de basculer vers l’API Pandas sur Spark. L’API Pandas sur Spark est disponible sur les clusters qui exécutent Databricks Runtime 10.0 (fin de support) et ultérieur. Pour les clusters qui exécutent Databricks Runtime 9.1 LTS et versions antérieures, utilisez Koalas à la place.

Pandas est un package Python couramment utilisé par les scientifiques des données pour l’analyse et la manipulation des données. En revanche, pandas n’effectue pas de scale-out pour le Big Data. L’API Pandas sur Spark comble cette lacune en fournissant des API équivalentes à pandas qui fonctionnent sur Apache Spark. Cette API open source est un choix idéal pour les scientifiques des données qui connaissent Pandas, mais pas Apache Spark.

Gérer le code avec des notebooks et des dossiers Git Databricks

Les notebooks Databricks prennent en charge Python. Ces notebooks fournissent des fonctionnalités similaires à celles de Jupyter, mais avec des ajouts tels que des visualisations intégrées à l’aide du Big Data, des intégrations Apache Spark pour le débogage et la supervision des performances et des intégrations MLflow pour le suivi des expériences de Machine Learning. Commencez en important un notebook. Une fois que vous avez accès à un cluster, vous pouvez attacher un notebook au cluster et exécuter le notebook.

Conseil

Pour réinitialiser complètement l’état de votre notebook, il peut être utile de redémarrer le noyau iPython. Pour les utilisateurs Jupyter, l’option « redémarrer le noyau » dans Jupyter correspond au détachement et au rattachement d’un notebook dans Databricks. Pour détacher un noyau d’une notebook Python, cliquez sur le sélecteur de calcul dans la barre d’outils du notebook et survolez le cluster ou l’entrepôt SQL attaché dans la liste pour afficher un menu latéral. Sélectionnez Détacher et rattacher. Cela détache le notebook de votre cluster et le réattache, ce qui redémarre le processus Python.

Les Dossiers Git Databricks permettent aux utilisateurs de synchroniser des notebooks et d’autres fichiers avec des référentiels Git. Les dossiers Git Databricks facilitent le contrôle de version et la collaboration sur du code. Il peut simplifier l’importation d’un référentiel complet de code dans Azure Databricks, l’affichage des versions passées de notebooks et l’intégration au développement dans les IDE. Commencez en clonant un référentiel Git distant. Vous pouvez ensuite ouvrir ou créer des notebooks avec le clone du référentiel, attacher le notebook à un cluster et exécuter le notebook.

Clusters et bibliothèques

Azure Databricks compute assure la gestion du calcul pour les clusters de toute taille : des clusters à nœud unique aux grands clusters. Vous pouvez personnaliser le matériel et les bibliothèques de cluster en fonction de vos besoins. Les scientifiques des données commencent généralement à travailler en créant un cluster ou en utilisant un cluster partagé existant. Une fois que vous avez accès à un cluster, vous pouvez attacher un notebook au cluster ou exécuter un travail sur le cluster.

Les clusters Azure Databricks utilisent un runtime Databricks, qui fournit de nombreuses bibliothèques populaires prêtes à l’emploi, notamment Apache Spark, Delta Lake, Pandas, etc. Vous pouvez également installer d’autres bibliothèques Python tierces ou personnalisées pour les utiliser avec les notebooks et les travaux.

Visualisations

Les notebooks Python Azure Databricks prennent en charge de nombreux types de visualisations. Vous pouvez également utiliser des visualisations héritées.

Vous pouvez également visualiser des données à l’aide de bibliothèques tierces ; certaines sont préinstallées dans Databricks Runtime, mais vous pouvez également installer des bibliothèques personnalisées. Les options les plus courantes sont les suivantes :

Tâches

Vous pouvez automatiser les charges de travail Python en tant que travaux planifiés ou déclenchés dans Databricks. Les travaux peuvent exécuter des notebooks, des scripts Python et des fichiers roue Python.

  • Créez et mettez à jour des travaux à l’aide de l’interface utilisateur Databricks ou de l’API REST Databricks.
  • Le Kit de développement logiciel (SDK) Python Databricks vous permet de créer, de modifier et de supprimer des travaux par programmation.
  • L’interface CLI Databricks fournit une interface de ligne de commande pratique pour automatiser les tâches.

Conseil

Pour planifier un script Python au lieu d’un notebook, utilisez le champ spark_python_task sous tasks dans le corps d’une demande de création de travail.

Machine Learning

Databricks prend en charge un large éventail de charges de travail de Machine Learning (ML), notamment le ML traditionnel sur les données tabulaires, le Deep Learning pour le traitement de la vision par ordinateur et du langage naturel, les systèmes de recommandation, l’analytique des graphiques, etc. Pour obtenir des informations générales concernant l’apprentissage automatique sur Databricks, consultez IA et apprentissage automatique sur Databricks.

Pour les algorithmes de ML, vous pouvez utiliser les bibliothèques préinstallées dans Databricks Runtime pour Machine Learning, qui inclut des outils Python populaires tels que scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib et XGBoost. Vous pouvez également installer des bibliothèques personnalisées.

Dans le cadre des opérations de machine learning (MLOps), Azure Databricks fournit un service managé pour la bibliothèque open source MLflow. Avec MLflow Tracking, vous pouvez enregistrer le développement de modèles et enregistrer des modèles dans des formats réutilisables. Vous pouvez utiliser le registre de modèles MLflow pour gérer et automatiser la promotion des modèles vers la production. Travaux et Mise en service de modèles permettent d’héberger des modèles en tant que tâches de traitement par lots et par diffusion en continu, mais aussi en tant que points de terminaison REST. Pour obtenir plus d’informations et des exemples, consultez la Gestion de cycle de vie Machine Learning en utilisant MLflow ou la documentation de l’API Python de MLflow.

Pour bien démarrer avec les charges de travail de Machine Learning courantes, consultez les pages suivantes :

IDE, outils de développement et Kits de développement logiciel (SDK)

En plus de développer du code Python dans des notebooks Azure Databricks, vous pouvez développer en externe à l’aide d’environnements de développement intégrés (IDE), tels que PyCharm, Jupyter et Visual Studio Code. Pour synchroniser le travail entre les environnements de développement externes et Databricks, il existe plusieurs options :

  • Code : vous pouvez synchroniser le code à l’aide de Git. Consultez Intégration de Git pour les dossiers Git Databricks.
  • Bibliothèques et travaux : vous pouvez créer des bibliothèques (comme des fichiers roue Python) en externe et les charger dans Databricks. Ces bibliothèques peuvent être importées dans des notebooks Databricks, ou elles peuvent être utilisées pour créer des travaux. Consultez Bibliothèques et Planifier et orchestrer des flux de travail.
  • Exécution d’ordinateur distant : vous pouvez exécuter du code à partir de votre IDE local pour le développement et le test interactifs. L’IDE peut communiquer avec Azure Databricks pour exécuter Apache Spark et des calculs volumineux sur des clusters Azure Databricks. Consultez Databricks Connect.

Databricks fournit un ensemble de kits SDK, notamment un SDK Python, qui prennent en charge l’automatisation et l’intégration à des outils externes. Vous pouvez utiliser les Kits SDK Databricks pour gérer des ressources comme des clusters et des bibliothèques, du code et d’autres objets d’espace de travail, des charges de travail et des tâches, etc. Consultez les Kits de développement logiciel (SDK) Databricks.

Pour plus d’informations sur les IDEs, les outils de développement et les kits SDK, consultez Outils de développement.

Ressources supplémentaires