Aller au contenu principal

Créer un fichier Python wheel à l'aide de Declarative Automation Bundles

Cette page décrit comment créer, déployer et exécuter un fichier Python wheel à l'aide de Declarative Automation Bundles. Consultez Que sont les Declarative Automation Bundles ?

Pour une configuration exemple qui construit un JAR et l'importe dans Unity Catalog, consultez Bundle qui upload un fichier JAR dans Unity Catalog.

Exigences

Créez le bundle à l'aide d'un Template

Créez le bundle à l'aide du default bundle Template des Declarative Automation Bundles pour Python. Cet ensemble se compose de fichiers à compiler en fichier Python wheel et de la définition d'un Job Databricks pour compiler ce fichier Python wheel. Vous validez, déployez et créez ensuite les fichiers déployés dans un fichier Python wheel à partir du Job Python wheel au sein de votre Workspace Databricks.

Si vous souhaitez créer un bundle à partir de zéro, consultez Créer un bundle manuellement.

Étape 1 : Créez le bundle

Un bundle contient les assets que vous souhaitez déployer et les paramètres des workflows que vous souhaitez exécuter.

  1. Utilisez votre terminal ou l’invite de commande pour passer à un répertoire de votre machine de développement locale qui contiendra le bundle généré par le Template.

  2. Utilisez la version de Databricks CLI pour exécuter la commande bundle init :

    Bash
    databricks bundle init
  3. Pour Template to use, laissez la valeur par défaut de default-python en appuyant sur Enter.

  4. Pour Unique name for this project, laissez la valeur default de my_project, ou saisissez une valeur différente, puis appuyez sur Enter. Ceci détermine le nom du répertoire racine de ce bundle. Ce répertoire racine est créé dans votre répertoire de travail actuel.

  5. Pour Include a job that runs a notebook, sélectionnez no et appuyez sur Enter. Ceci indique au CLI Databricks de ne pas ajouter d'exemple de Notebook à votre bundle.

  6. Pour Include an ETL pipeline, sélectionnez no et appuyez sur Enter. Cela indique au CLI Databricks de ne pas définir d'exemple de pipeline dans votre bundle.

  7. Pour Include a stub (sample) Python package, conservez la valeur default de yes en appuyant sur Enter. Ceci indique au CLI Databricks d’ajouter des exemples de fichiers de package Python wheel et des instructions de build associées à votre bundle.

  8. Pour Use serverless, sélectionnez yes et appuyez sur Enter. Ceci indique au CLI Databricks de configurer votre bundle pour qu'il s'exécute sur un compute serverless.

  9. Pour Default catalog for any tables created by this project [hive_metastore], entrez le nom d'un catalogue Unity Catalog existant.

  10. Pour Use a personal schema for each user working on this project., sélectionnez yes.

Étape 2 : Explorer le bundle

Pour afficher les fichiers générés par le Template, passez au répertoire racine de votre bundle nouvellement créé et ouvrez ce répertoire avec votre IDE préféré. Les fichiers présentant un intérêt particulier incluent les éléments suivants :

  • databricks.yml: Ce fichier spécifie le nom du bundle, inclut des références aux fichiers du bundle, spécifie les paramètres de construction whl, définit les variables de catalogue et de schéma, et spécifie les paramètres pour les Workspaces cibles.
  • resources/sample_job.job.yml: Ce fichier spécifie les paramètres du job Python wheel. Pour plus d'informations sur les paramètres de job, consultez Job.
  • src/: Ce dossier contient les fichiers que le Job Python wheel utilise pour créer le fichier Python wheel.
  • 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 Template de bundle.
remarque

Si vous souhaitez installer le Python Wheel sur un cluster avec Databricks Runtime 12.2 LTS ou les versions antérieures, vous devez ajouter le mappage de premier niveau suivant au fichier databricks.yml :

YAML
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true

Étape 3 : Valider la configuration du bundle

Vérifiez maintenant si la configuration du bundle est valide.

  1. À partir du répertoire racine, utilisez la CLI Databricks pour exécuter la commande bundle validate :

    Bash
    databricks bundle validate
  2. Si 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éployez le bundle vers le workspace distant

Ensuite, déployez le bundle sur votre Workspace Databricks distant. Ceci construit le fichier Python wheel. Vérifiez qu'un Job Databricks est créé dans votre Workspace.

  1. Depuis la racine du bundle, utilisez la CLI Databricks pour exécuter la commande bundle deploy :

    Bash
    databricks bundle deploy --target dev
  2. Confirmez que le fichier Python wheel construit localement a été déployé :

    1. Dans la barre latérale de votre Workspace Databricks, cliquez sur Workspace .
    2. Cliquez dans le dossier suivant : Workspace > Users > <your-username> > .bundle > <project-name> > dev > artifacts > .internal > <whl-file-name>.whl .

    Le fichier Python wheel doit se trouver dans ce dossier.

  3. Vérifiez si le job a été créé :

    1. Dans la barre latérale de votre workspace Databricks, cliquez sur Tâches & Pipelines .
    2. Facultativement, sélectionnez les filtres **Jobs** et **Appartenant à moi**.
    3. Cliquez sur [dev <your-username>] sample_job .
    4. Cliquez sur l'onglet **tab**. Il doit y avoir une python_wheel_task .

Si vous apportez des modifications à votre bundle après cette étape, répétez les étapes 3 et 4 pour vérifier si la configuration de votre bundle est toujours valide, puis redéployez le projet.

Étape 5 : Exécutez le projet déployé.

Trigger maintenant une exécution du Job Databricks dans votre Workspace.

  1. À partir du répertoire racine, utilisez la CLI Databricks pour exécuter la commande bundle run :

    Bash
    databricks bundle run --target dev sample_job
  2. Copiez la valeur de Run URL qui apparaît dans votre terminal et collez cette valeur dans votre navigateur web pour ouvrir votre workspace Databricks.

  3. Dans votre Databricks workspace, une fois la tâche terminée avec succès et qu’une barre de titre verte s’affiche, cliquez sur la tâche de job pour voir les résultats.

Créez le whl à l'aide de Poetry ou de setuptools

Lorsque vous utilisez databricks bundle init avec le template Python par default, un bundle est créé qui montre comment configurer un bundle qui crée un Python wheel à l'aide de uv et pyproject.toml. Cependant, vous pourriez vouloir utiliser Poetry ou setuptools à la place pour construire une roue.

Installez Poetry ou setuptools

  1. Installez Poetry ou setuptools:
  • Installez Poetry, version 1.6 ou supérieure, s'il n'est pas déjà installé. Pour vérifier la version installée de Poetry, exécutez la commande poetry -V ou poetry --version.
  • Assurez-vous que Python version 3.10 ou supérieure est installé. Pour vérifier votre version de Python, exécutez la commande python -V ou python --version.
  1. Si vous avez l’intention de stocker ce bundle chez un fournisseur Git, ajoutez un fichier .gitignore à la racine du projet, et ajoutez les entrées suivantes à ce fichier :
.databricks
dist

Ajouter des fichiers de build

  1. À la racine de votre bundle, créez les dossiers et fichiers suivants, selon que vous utilisez Poetry ou setuptools pour créer des fichiers Python wheel :
├── src
│ └── my_package
│ ├── __init__.py
│ ├── main.py
│ └── my_module.py
└── pyproject.toml
  1. Ajoutez le code suivant au fichier pyproject.toml ou setup.py :
[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-name par le nom du contact principal de votre organisation.
  • Remplacez my-author-name>@<my-organization par l'adresse e-mail de contact principale de votre organisation.
  • Remplacez <my-package-description> par une description d'affichage pour votre fichier Python wheel.

Ajouter la configuration du paquet d'artefacts

  1. Ajoutez la configuration de mappage artifacts à votre databricks.yml pour créer l'artefact whl :

Cette configuration exécute la commande poetry build et indique que le chemin d’accès au fichier pyproject.toml se trouve dans le même répertoire que le fichier databricks.yml.

remarque

If you have already built a Python wheel file and just want to deploy it, then modify the following bundle configuration file by omitting the artifacts mapping. The Databricks CLI will then assume that the Python wheel file is already built and will automatically deploy the files that are specified in the libraries array's whl entries.

YAML
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: i3.xlarge
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>