Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette page explique comment générer, déployer et exécuter un fichier de roue Python à l’aide de Bundles de ressources Databricks. Veuillez consulter la section Que sont-les bundles de ressources Databricks ?
Pour obtenir un exemple de configuration qui génère un fichier JAR et le charge dans le catalogue Unity, consultez Bundle qui charge un fichier JAR dans le catalogue Unity.
Requirements
- Databricks CLI version 0.218.0 ou ultérieure est installée et l’authentification est configurée. Pour vérifier la version installée de l’interface CLI Databricks, exécutez la commande
databricks -v. Pour installer l’interface CLI Databricks, consultez Installer ou mettre à jour l’interface CLI Databricks. Pour configurer l’authentification, consultez Configurer l’accès à votre espace de travail. - uv est nécessaire pour exécuter des tests et installer des dépendances pour ce projet à partir d’un IDE.
- L’espace de travail distant doit avoir les fichiers d’espace de travail activés. Consultez l’article Que sont les fichiers d’espace de travail ?
- Catalogue existant. Pour créer un catalogue, consultez Créer des catalogues.
Créer l’offre groupée à l’aide d’un modèle
Créez le bundle à l’aide du modèle d’offre groupée par défaut Databricks Asset Bundles pour Python. Ce bundle se compose de fichiers à générer dans un fichier de roue Python et de la définition d’un travail Azure Databricks pour générer ce fichier de roue Python. Vous validez ensuite les fichiers, les déployez, puis compilez les fichiers déployés dans un fichier wheel Python depuis le job wheel Python dans votre espace de travail Azure Databricks.
Si vous souhaitez créer un bundle à partir de zéro, consultez Créer un bundle manuellement.
Étape 1 : Créer le bundle
Un bundle contient les ressources que vous souhaitez déployer et les paramètres des flux de travail que vous souhaitez exécuter.
Utilisez votre terminal ou invite de commandes pour basculer vers un répertoire sur votre ordinateur de développement local qui contiendra le bundle généré du modèle.
Utilisez la version CLI Databricks pour exécuter la commande
bundle init:databricks bundle initPour
Template to use, conservez la valeur par défaut dedefault-pythonen appuyant surEnter.Pour
Unique name for this project, conservez la valeur par défaut demy_projectou saisissez une valeur différente, puis appuyez surEnter. Cela détermine le nom du répertoire racine de ce bundle. Ce répertoire racine est créé dans votre répertoire de travail actuel.Pour
Include a job that runs a notebook, sélectionnezno, puis appuyez surEnter. Cela indique à la CLI Databricks de ne pas ajouter de notebook d’exemple à votre bundle.Pour
Include an ETL pipeline, sélectionnezno, puis appuyez surEnter. Cela indique à l’interface CLI Databricks de ne pas définir d’exemple de pipeline dans votre bundle.Pour
Include a stub (sample) Python package, conservez la valeur par défaut deyesen appuyant surEnter. Cela indique à la CLI Databricks d’ajouter les fichiers d’exemple du package wheel Python ainsi que les instructions de build associées à votre bundle.Pour
Use serverless, sélectionnezyes, puis appuyez surEnter. Cela indique à l’interface CLI Databricks de configurer votre bundle pour qu’il s’exécute sur le calcul sans serveur.Pour
Default catalog for any tables created by this project [hive_metastore], entrez le nom d’un catalogue Unity Catalog existant.Pour
Use a personal schema for each user working on this project., sélectionnezyes.
Étape 2 : Explorer le bundle
Pour afficher les fichiers générés par le modèle, basculez vers le répertoire racine de votre bundle nouvellement créé et ouvrez ce répertoire avec votre IDE préféré. Les fichiers particulièrement importants sont les suivants :
-
databricks.yml: ce fichier spécifie le nom du bundle, inclut des références aux fichiers du bundle, spécifie leswhlparamètres de génération, définit les variables de catalogue et de schéma et spécifie les paramètres des espaces de travail cibles. -
resources/sample_job.job.yml: ce fichier spécifie les paramètres du job wheel Python. Pour plus d’informations sur les paramètres de travail, consultez travail. -
src/: ce dossier inclut les fichiers utilisés par le travail de roue Python pour générer le fichier wheel Python. -
tests/: ce dossier contient des exemples de tests unitaires. -
README.md: ce fichier contient des informations supplémentaires sur la prise en main et l’utilisation de ce modèle groupé.
Note
Si vous souhaitez installer le fichier de roue Python sur un cluster avec Databricks Runtime 12.2 LTS ou ci-dessous, vous devez ajouter le mappage de niveau supérieur suivant au databricks.yml fichier :
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
Étape 3 : Valider la configuration de l’offre groupée
Vérifiez maintenant si la configuration de l’offre groupée est valide.
À partir du répertoire racine, utilisez l’interface CLI Databricks pour exécuter la
bundle validatecommande :databricks bundle validateSi un résumé de la configuration du bundle est renvoyé, la validation a réussi. Si des erreurs sont renvoyées, corrigez-les, puis répétez cette étape.
Étape 4 : Déployer le bundle sur l’espace de travail distant
Ensuite, déployez l’offre groupée sur votre espace de travail Azure Databricks distant. Cette opération génère le fichier de roue Python. Vérifiez qu’un travail Azure Databricks est créé dans votre espace de travail.
À partir de la racine du bundle, utilisez la CLI Databricks pour exécuter la commande
bundle deploy:databricks bundle deploy --target devVérifiez que le fichier de roue Python généré localement a été déployé :
- Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Espace de travail.
- Cliquez dans le dossier suivant : Workspace > Users >
<your-username>> .bundle ><project-name>> dev > artifacts > .internal ><whl-file-name>.whl.
Le fichier wheel Python devrait se trouver dans ce dossier.
Vérifiez si la tâche a été créée :
- Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Travaux & Pipelines.
- Vous pouvez aussi sélectionner les filtres Travaux et Je suis le propriétaire.
- Cliquez sur [dev
<your-username>]sample_job. - Cliquez sur l’onglet Tâches . Il devrait y avoir un python_wheel_task.
Si vous apportez des modifications à votre offre groupée après cette étape, répétez les étapes 3 à 4 pour vérifier si votre configuration de bundle est toujours valide, puis redéployez le projet.
Étape 5 : Exécuter le projet déployé
À présent, déclenchez une exécution du travail Azure Databricks dans votre espace de travail.
À partir du répertoire racine, utilisez l’interface CLI Databricks pour exécuter la
bundle runcommande :databricks bundle run --target dev sample_jobCopiez la valeur de
Run URLqui s’affiche dans votre terminal et collez cette valeur dans votre navigateur pour ouvrir votre espace de travail Azure Databricks.Dans votre espace de travail Azure Databricks, une fois la tâche terminée avec succès et qu'elle affiche une barre de titre verte, cliquez sur la tâche du travail pour voir les résultats.
Créer le fichier whl à l'aide de Poetry ou setuptools
Lorsque vous utilisez databricks bundle init le modèle python par défaut, un bundle est créé qui montre comment configurer un bundle qui génère une roue Python à l’aide uv et pyproject.toml. Toutefois, vous voudrez peut-être utiliser la poésie ou setuptools plutôt pour construire une roue.
Installer Poetry ou setuptools
Installer Poetry ou
setuptools:Poetry
-
Installez Poetry, version 1.6 ou ultérieure, si elle n’est pas déjà installée. Pour vérifier la version de Poetry installée, exécutez la commande
poetry -Voupoetry --version. - Assurez-vous que Python version 3.10 (ou une version supérieure) est installé. Pour vérifier votre version de Python, exécutez la commande
python -Voupython --version.
Setuptools
Installez les packages
wheeletsetuptoolss'ils ne sont pas déjà installés, en exécutant la commande suivante :pip3 install --upgrade wheel setuptools-
Installez Poetry, version 1.6 ou ultérieure, si elle n’est pas déjà installée. Pour vérifier la version de Poetry installée, exécutez la commande
Si vous envisagez de stocker ce bundle avec un fournisseur Git, ajoutez un
.gitignorefichier à la racine du projet et ajoutez les entrées suivantes à ce fichier :Poetry
.databricks distSetuptools
.databricks build dist src/my_package/my_package.egg-info
Ajouter des fichiers de build
Dans la racine de votre bundle, créez les dossiers et fichiers suivants, selon que vous utilisez Poetry ou
setuptoolspour créer les fichiers wheel Python :Poetry
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.tomlSetuptools
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.pyAjoutez le code suivant au fichier
pyproject.tomlousetup.py.Pyproject.toml
[tool.poetry] name = "my_package" version = "0.0.1" description = "<my-package-description>" authors = ["my-author-name <my-author-name>@<my-organization>"] [tool.poetry.dependencies] python = "^3.10" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] main = "my_package.main:main"- Remplacez
my-author-namele nom de contact principal de votre organisation. - Remplacez
my-author-name>@<my-organizationpar l’adresse de contact de messagerie principale de votre organisation. - Remplacez
<my-package-description>par une description de l'affichage de votre fichier wheel Python.
Setup.py
from setuptools import setup, find_packages import src setup( name = "my_package", version = "0.0.1", author = "<my-author-name>", url = "https://<my-url>", author_email = "<my-author-name>@<my-organization>", description = "<my-package-description>", packages=find_packages(where='./src'), package_dir={'': 'src'}, entry_points={ "packages": [ "main=my_package.main:main" ] }, install_requires=[ "setuptools" ] )- Remplacez
https://<my-url>par l’URL de votre organisation. - Remplacez
<my-author-name>le nom de contact principal de votre organisation. - Remplacez
<my-author-name>@<my-organization>par l’adresse de contact de messagerie principale de votre organisation. - Remplacez
<my-package-description>par une description de l'affichage de votre fichier wheel Python.
- Remplacez
Ajouter une configuration groupée d’artefacts
Ajoutez la configuration de mappage
artifactsà votredatabricks.ymlpour créer l’artifactwhl:Poetry
Cette configuration exécute la
poetry buildcommande et indique que le chemin d’accès aupyproject.tomlfichier se trouve dans le même répertoire que ledatabricks.ymlfichier.Note
Si vous avez déjà créé un fichier wheel Python et souhaitez uniquement le déployer, modifiez le fichier de configuration de bundle suivant en omettant la correspondance
artifacts. L’interface CLI Databricks suppose ensuite que le fichier de roue Python est déjà généré et déploie automatiquement les fichiers spécifiés dans leslibrariesentrées duwhltableau.bundle: name: my-wheel-bundle artifacts: default: type: whl build: poetry build path: . resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 data_security_mode: USER_ISOLATION num_workers: 1 python_wheel_task: entry_point: main package_name: my_package libraries: - whl: ./dist/*.whl targets: dev: workspace: host: <workspace-url>Setuptools
Cette configuration exécute la
setuptoolscommande et indique que le chemin d’accès ausetup.pyfichier se trouve dans le même répertoire que ledatabricks.ymlfichier.bundle: name: my-wheel-bundle artifacts: default: type: whl build: python3 setup.py bdist wheel path: . resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 data_security_mode: USER_ISOLATION num_workers: 1 python_wheel_task: entry_point: main package_name: my_package libraries: - whl: ./dist/*.whl targets: dev: workspace: host: <workspace-url>