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
etsetuptool
. Vous pouvez utiliserpip
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.
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' ] )
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
Accédez à votre page d’accueil Azure Databricks et effectuez l’une des opérations suivantes :
- Dans la barre latérale, cliquez sur Flux de travail, puis sur .
- Dans la barre latérale, cliquez sur Nouveau, puis sélectionnez Travail dans le menu.
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
.Pour Nom de la tâche, entrez un nom pour la tâche, par exemple
python_wheel_task
.Dans Type, sélectionnez Roue Python.
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ètrename
danssetup.py
.Dans Point d’entrée, entrez
run
. Le point d’entrée est l’une des valeurs spécifiées dans la collectionentry_points
dans le scriptsetup.py
. Dans cet exemple,run
est le seul point d’entrée défini.Dans Capacité de calcul, sélectionnez un groupement de projets existant ou Ajouter un nouveau groupement de projets.
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.Cliquez sur Add.
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.
- Pour entrer des arguments positionnels, entrez des paramètres en tant que tableau de chaînes au format JSON, par exemple :
Cliquez sur Create task.
Étape 6 : Exécuter le travail et afficher les détails de l’exécution du travail
Cliquez sur le 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.