Databricks pour les développeurs Python
Cette section fournit un guide pour développer des Notebooks et des Jobs dans Databricks en utilisant le langage Python, y compris des tutoriels pour les workflows et tâches courants, et des Link vers les APIs, bibliothèques et outils.
Pour commencer :
- Importer le code: Importez votre propre code à partir de fichiers ou de dépôts Git, ou essayez un tutoriel listé ci-dessous. Databricks recommande d'apprendre à l'aide des Databricks Notebooks interactifs.
- Exécutez votre code sur un cluster: Soit créez votre propre cluster, soit assurez-vous d'avoir les autorisations nécessaires pour utiliser un cluster partagé. Veuillez associer votre notebook au cluster, et exécutez le notebook.
- Ensuite, vous pouvez :
- Travaillez avec des ensembles de données plus volumineux à l'aide d'Apache Spark
- Ajouter des visualisations
- Automatisez votre charge de travail en tant que Job
- Utilisez le Machine Learning pour analyser vos données
- Développer dans des IDEs
- Exécuter et gérer les tests unitaires Python dans le workspace
Didacticiels
Les tutoriels ci-dessous fournissent des exemples de code et des 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 Workspace.
Data Engineering
- Didacticiel : Charger et transformer des données à l'aide des DataFrames Apache Spark fournit un aperçu détaillé pour vous aider à découvrir les DataFrames Apache Spark pour la préparation des données et l'analytique.
- Tutoriel : Créer et gérer des tables Delta Lake.
- Didacticiel : Créer un pipeline ETL à l'aide de la capture de données modifiées.
Data Science et Machine Learning
- Démarrer avec les DataFrames Apache Spark pour la préparation des données et l’analytique : Didacticiel : Charger et transformer des données à l’aide des DataFrames Apache Spark
- Tutoriel : Modèles ML classiques de bout en bout sur Databricks. Pour d'autres exemples, consultez Machine Learning sur Databricks.
- AutoML vous permet de démarrer rapidement le développement de modèles de machine learning sur vos propres datasets. Son approche transparente génère des notebooks avec le workflow complet de machine learning, que vous pouvez cloner, modifier et réexécuter.
- Gérer le cycle de vie du modèle dans Unity Catalog
Déboguer dans les Notebook Python
L'exemple de notebook illustre 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 versions supé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 lorsque vous parcourez les points d'arrêt.
Notebook d'exemple de débogueur Python
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() au lieu de breakpoint().
Python APIs
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 démarrer. Consultez Gérer le code avec les notebooks et les dossiers Git Databricks ci-dessous pour plus de détails.
Databricks peut exécuter des charges de travail Python mono-machine et distribuées. Pour le calcul sur une seule machine, vous pouvez utiliser les APIs et les bibliothèques Python comme d'habitude ; par exemple, pandas et scikit-learn fonctionneront « tout simplement ». Pour les charges de travail Python distribuées, Databricks offre nativement deux APIs populaires : PySpark et Pandas API sur Spark.
API PySpark
PySpark est l'API Python officielle pour Apache Spark et combine la puissance de Python et Apache Spark. PySpark est plus flexible que l'API Pandas sur Spark et offre un support et des fonctionnalités étendus pour les fonctionnalités de Data Science et de Data Engineering telles que Spark SQL, Structured Streaming, MLlib et GraphX.
API Pandas sur Spark
Le projet open source Koalas recommande maintenant de passer à l'API Pandas sur Spark. L'API Pandas sur Spark est disponible sur les clusters qui exécutent Databricks Runtime 10.0 et versions ultérieures. 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 data scientists pour l'analyse et la manipulation de données. Cependant, pandas ne monte pas en charge pour le Big Data. L'API Pandas sur Spark comble cette lacune en fournissant des APIs équivalentes à pandas qui fonctionnent sur Apache Spark. Cette API open source est un choix idéal pour les data scientists qui connaissent pandas mais pas Apache Spark.
Gérer le code avec des Notebook et des dossiers Git Databricks
Les Notebooks Databricks prennent en charge Python. Ces notebooks offrent des fonctionnalités similaires à celles de Jupyter, mais avec des ajouts tels que des visualisations intégrées utilisant le Big Data, des intégrations Apache Spark pour le debugging et le monitoring des performances, et des intégrations MLflow pour le suivi des expérimentations de Machine Learning. Débutez en important un notebook. Une fois que vous avez accès à un cluster, vous pouvez associer un notebook au cluster et exécuter le notebook.
Pour Reset l'état de votre Notebook, redémarrez le kernel iPython. Pour les utilisateurs de Jupyter, l'option « restart kernel » dans Jupyter correspond au démarrage d'une nouvelle session dans Databricks. Pour redémarrer le noyau dans un Notebook Python, cliquez sur le sélecteur de compute dans la barre d'outils du Notebook et passez la souris sur le cluster ou le SQL Warehouse attaché dans la liste pour afficher un menu latéral. Sélectionner Nouvelle session . Cela démarre une nouvelle session, ce qui redémarre le processus Python.
Les dossiers Git de Databricks permettent aux utilisateurs de synchroniser les notebooks et d'autres fichiers avec les référentiels Git. Les dossiers Git Databricks facilitent le versionnement et la collaboration de code, et peuvent simplifier l'importation d'un repository complet de code dans Databricks, la visualisation des versions antérieures de notebook et l'intégration avec le développement IDE. start en clonant un repository Git distant. Vous pouvez ensuite ouvrir ou créer des notebooks avec le clone du repository, attacher le notebook à un cluster, et exécuter le notebook.
Clusters et bibliothèques
Databricks compute fournit une gestion du compute pour des clusters de toute taille : des clusters à nœud unique aux grands clusters. Vous pouvez personnaliser le matériel et les bibliothèques des clusters en fonction de vos besoins. Les data scientists commenceront généralement leur travail soit en créant un cluster, soit 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 Job sur le cluster.
- Pour les petites charges de travail qui ne nécessitent qu'un seul nœud, les data scientist peuvent utiliser le single node compute pour réaliser des économies.
- Pour des conseils détaillés, consultez Bonnes pratiques de configuration du compute classique
- Les administrateurs peuvent configurer des politiques de clusters pour simplifier et guider la création de clusters.
Les clusters Databricks utilisent un Databricks Runtime, qui fournit de nombreuses bibliothèques populaires prêtes à l'emploi, notamment Apache Spark, Delta Lake, Pandas, et plus encore. Vous pouvez également installer des bibliothèques Python supplémentaires tierces ou personnalisées à utiliser avec les notebooks et les Jobs.
- Commencez par les bibliothèques par défaut dans les versions et compatibilité des notes de version de Databricks Runtime. Utilisez Databricks Runtime for Machine Learning pour les charges de travail de machine learning. Pour la liste complète des bibliothèques préinstallées, consultez les notes de version et la compatibilité de Databricks Runtime.
- Personnalisez votre environnement à l'aide des bibliothèques Python limitées aux Notebook, qui vous permettent de modifier votre environnement de Notebook ou de Job avec des bibliothèques de PyPI ou d'autres repositories. La commande magique
%pip install my_libraryinstallemy_librarysur tous les nœuds de votre cluster actuellement attaché, mais n'interfère pas avec d'autres charges de travail sur le compute avec le mode d'accès standard. - Installez les bibliothèques non Python en tant que bibliothèques à l'échelle du compute, si nécessaire.
- Pour plus de détails, consultez Installer des bibliothèques.
Visualisations
Les Notebooks Databricks Python ont un support intégré pour de nombreux types de visualisations. Vous pouvez également utiliser des visualisations héritées.
Vous pouvez également visualiser les données à l'aide de bibliothèques tierces ; certaines sont préinstallées dans le Databricks Runtime, mais vous pouvez également installer des bibliothèques personnalisées. Les options populaires incluent :
Jobs
Vous pouvez automatiser des charges de travail Python sous forme de Job planifiés ou Trigger dans Databricks. Les Jobs peuvent exécuter des notebooks, des scripts Python et des fichiers Python wheel.
- Créez et mettez à jour des jobs à l'aide de l'interface utilisateur de Databricks ou de l'API REST de Databricks.
- Le SDK Python Databricks vous permet de créer, modifier et supprimer des jobs par programme.
- Le CLI Databricks fournit une interface de ligne de commande pratique pour l'automatisation des jobs.
Pour planifier un script Python au lieu d'un Notebook, utilisez le champ spark_python_task sous tasks dans le corps d'une requête de création de Job.
Machine Learning
Databricks prend en charge une grande variété de charges de travail de Machine Learning (ML), y compris le ML traditionnel sur données tabulaires, l'apprentissage profond pour la vision par ordinateur et le traitement du langage naturel, les systèmes de recommandation, l'analytique de graphes, et plus encore. Pour des informations générales sur le Machine Learning sur Databricks, consultez Machine Learning sur Databricks.
Pour les algorithmes de ML, vous pouvez utiliser les bibliothèques préinstallées dans Databricks Runtime for Machine Learning, qui comprend 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.
Pour les opérations de Machine Learning (MLOps), Databricks fournit un service géré pour la bibliothèque open source MLflow. Avec MLflow Tracking, vous pouvez enregistrer le développement de modèles et les sauvegarder dans des formats réutilisables. Vous pouvez utiliser le MLflow Model Registry pour gérer et automatiser la promotion des modèles vers la production. Jobs et Model Serving permettent d'héberger des modèles en tant que jobs batch et de streaming et en tant qu'endpoints REST. Pour plus d'informations et d'exemples, consultez le MLflow sur Databricks ou la documentation de l'API Python de MLflow.
Pour bien start avec les charges de travail courantes de Machine Learning, consultez les pages suivantes :
- Formation scikit-learn et suivi avec MLflow : Didacticiel de 10 minutes : Machine Learning sur Databricks avec scikit-learn
- Entraînement de modèles de deep learning : Deep learning
- Ajustement des hyperparamètres : Ajustement des hyperparamètres avec Optuna
- Analytique de graphe : Comment utiliser GraphFrames sur Databricks
IDEs, outils de développement et SDK.
En plus de développer du code Python dans les notebooks Databricks, vous pouvez également développer en externe en utilisant des environnements de développement intégrés (IDEs) tels que PyCharm, Jupyter et Visual Studio Code. Pour synchroniser le travail entre les environnements de développement externes et Databricks, vous disposez de plusieurs options :
- Code : Vous pouvez synchroniser le code à l’aide de Git. Voir Dossiers Git Databricks.
- Bibliothèques et tâches : Vous pouvez créer des bibliothèques (tels que des fichiers Python wheel) en externe et les upload vers Databricks. Ces bibliothèques peuvent être importées dans les Notebooks Databricks, ou elles peuvent être utilisées pour créer des Jobs. Consultez Installer les bibliothèques et Lakeflow Jobs.
- Exécution de code à distance : Vous pouvez exécuter du code depuis votre IDE local pour le développement et les tests interactifs. L'IDE peut communiquer avec Databricks pour exécuter Apache Spark et des calculs de grande envergure sur des clusters Databricks. See Databricks Connect.
Databricks fournit un ensemble de SDK, y compris un SDK Python, qui prennent en charge l'automatisation et l'intégration avec des outils externes. Vous pouvez utiliser les SDK Databricks pour gérer des ressources telles que les clusters et les bibliothèques, le code et d'autres objets du Workspace, les charges de travail et les jobs, et bien plus encore. Consultez les SDK Databricks.
Pour plus d'informations sur les IDEs, les outils de développement et les SDKs, voir Cas d'utilisation des outils de développement.
Ressources supplémentaires
-
La Databricks Academy propose des cours à votre rythme et animés par un instructeur sur de nombreux sujets.
-
Databricks Labs fournit des outils pour le développement Python dans Databricks, tels que le plug-in pytest et le plug-in pylint. Databricks offre également des fonctionnalités pour vous aider à gérer les fichiers de tests unitaires Python dans le workspace.
-
Les fonctionnalités qui prennent en charge l'interopérabilité entre PySpark et pandas incluent les suivantes :
-
Les outils de connectivité de base de données Python et SQL comprennent :
- Le Connecteur Databricks SQL pour Python vous permet d'utiliser du code Python pour exécuter des commandes SQL sur les ressources Databricks.
- pyodbc vous permet de vous connecter à partir de votre code Python local via ODBC aux données stockées dans le lakehouse Databricks.
-
Les FAQ et les conseils pour le déplacement des charges de travail Python vers Databricks se trouvent dans la Base de connaissances Databricks.