Partage via


Utilisez un fichier roue Python dans une tâche Azure Databricks

Un fichier roue Python est un moyen standard d’empaqueter et de distribuer les fichiers nécessaires à l’exécution d’une application Python. À l’aide de la tâche de roue Python, vous pouvez garantir une installation rapide et fiable du code Python dans vos travaux Azure Databricks. Cet article contient un exemple de création d’un fichier roue Python et d’une tâche qui exécute l’application contenue dans la roue Python. Dans cet exemple, vous allez :

  • Créez les fichiers Python définissant un exemple d’application.
  • Regrouper les fichiers d’exemple dans un fichier roue Python.
  • Créez une tâche pour exécuter le fichier roue Python.
  • Exécutez le travail et affichez les résultats.

Avant de commencer

Les éléments suivants sont nécessaires pour effectuer cet exemple :

  • Python3

  • Les packages Python wheel et setuptool. Vous pouvez utiliser pip pour installer ces packages. Par exemple, vous pouvez exécuter la commande suivante pour installer ces packages :

    pip install wheel setuptools
    

Étape 1 : Créer un répertoire local pour l’exemple

Créez un répertoire local pour contenir l’exemple de code et les artefacts générés, par exemple databricks_wheel_test.

Étape 2 : Créer l’exemple de script Python

L’exemple Python suivant est un script simple qui lit les arguments d’entrée et les imprime. Copiez ce script et enregistrez-le dans un chemin appelé my_test_code/__main__.py dans le répertoire que vous avez créé à l’étape précédente.

"""
The entry point of the Python Wheel
"""

import sys

def main():
  # This method will print the provided arguments
  print('Hello from my func')
  print('Got arguments:')
  print(sys.argv)

if __name__ == '__main__':
  main()

Étape 3 : Créer un fichier de métadonnées pour le package

Le fichier suivant contient des métadonnées décrivant le package. Enregistrez-le dans un chemin appelé my_test_code/__init__.py dans le répertoire que vous avez créé à l’étape 1.

__version__ = "0.0.1"
__author__ = "Databricks"

Étape 4 : Créer le fichier roue Python

La conversion des artefacts Python en un fichier roue Python nécessite de spécifier les métadonnées du paquet, telles que le nom du paquet et les points d’entrée. Le script suivant définit ces métadonnées.

Notes

Les entry_points définis dans ce script sont utilisés pour exécuter le package dans le workflow Azure Databricks. Dans chaque valeur de entry_points, la valeur avant = (dans cet exemple, run) est le nom du point d’entrée et est utilisée pour configurer la tâche de la roue Python.

  1. Enregistrez ce script dans un fichier nommé setup.py à la racine du répertoire que vous avez créé à l’étape 1 :

    from setuptools import setup, find_packages
    
    import my_test_code
    
    setup(
      name='my_test_package',
      version=my_test_code.__version__,
      author=my_test_code.__author__,
      url='https://databricks.com',
      author_email='john.doe@databricks.com',
      description='my test wheel',
      packages=find_packages(include=['my_test_code']),
      entry_points={
        'group_1': 'run=my_test_code.__main__:main'
      },
      install_requires=[
        'setuptools'
      ]
    )
    
  2. Accédez au répertoire que vous avez créé à l’étape 1, puis exécutez la commande suivante pour empaqueter votre code dans la distribution de roue Python :

    python3 setup.py bdist_wheel
    

Cette commande crée le fichier roue Python et l’enregistre dans le fichier dist/my_test_package-0.0.1-py3.none-any.whl de votre répertoire.

Étape 5. Créer une tâche Azure Databricks pour exécuter le fichier roue Python

  1. Accédez à votre page d’accueil Azure Databricks et effectuez l’une des opérations suivantes :

    • Dans la barre latérale, cliquez sur Icône de flux de travail Flux de travail, puis sur bouton Créer un travail.
    • Dans la barre latérale, cliquez sur nouvelle icône Nouveau, puis sélectionnez Travail dans le menu.
  2. Dans la boîte de dialogue de la tâche qui s’affiche sous l’onglet Tâches, remplacez Ajouter un nom à votre travail... par votre nom de travail, par exemple Python wheel example.

  3. Pour Nom de la tâche, entrez un nom pour la tâche, par exemple python_wheel_task.

  4. Dans Type, sélectionnez Roue Python.

  5. Dans Nom du package, entrez my_test_package. La valeur Nom du package est le nom du package Python à importer. Dans cet exemple, le nom du package est la valeur attribuée au paramètre name dans setup.py.

  6. Dans Point d’entrée, entrez run. Le point d’entrée est l’une des valeurs spécifiées dans la collection entry_points dans le script setup.py. Dans cet exemple, run est le seul point d’entrée défini.

  7. Dans Capacité de calcul, sélectionnez un groupement de projets existant ou Ajouter un nouveau groupement de projets.

  8. Cliquez sur Ajouter sous Bibliothèques dépendantes. Dans la boîte de dialogue Ajouter une bibliothèque dépendante, avec l’espace de travail sélectionné, faites glisser le fichier my_test_package-0.0.1-py3-none-any.whl créé à l’étape 4 dans la zone Déposer le fichier ici de la boîte de dialogue.

  9. Cliquez sur Add.

  10. Dans Paramètres, sélectionnez Arguments positionnels ou Arguments de mot clé pour entrer la clé et la valeur de chaque paramètre. Les arguments positionnels et de mots clés sont transférés vers la tâche de roue Python en tant qu’arguments de ligne de commande.

    • Pour entrer des arguments positionnels, entrez des paramètres en tant que tableau de chaînes au format JSON, par exemple : ["first argument","first value","second argument","second value"].
    • Pour entrer des arguments de mot clé, cliquez sur + Ajouter, puis entrez une clé et une valeur. Cliquez à nouveau sur + Ajouter pour entrer d’autres arguments.
  11. Cliquez sur Create task.

Étape 6 : Exécuter le travail et afficher les détails de l’exécution du travail

Cliquez sur le bouton Exécuter maintenant pour exécuter le flux de travail. Pour afficher les détails de l’exécution, cliquez sur Afficher l’exécution dans la fenêtre contextuelle Exécution déclenchée ou cliquez sur le lien dans la colonne Heure de début de l’exécution dans la vue Exécutions de travaux.

Une fois l’exécution terminée, la sortie s’affiche dans le panneau Sortie, y compris les arguments passés à la tâche.

Étapes suivantes

Pour en savoir plus sur la création et l’exécution de projets Azure Databricks, voir Planifier et orchestrer des flux de travail.