Utilisez un fichier Python wheel dans les Lakeflow Jobs.
Un fichier Python wheel 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 Python wheel, vous pouvez assurer une installation rapide et fiable du code Python dans vos Jobs. Cet article fournit un exemple de création d'un fichier Python wheel et d'un Job qui exécute l'application empaquetée dans le fichier Python wheel. Dans cet exemple, vous :
- Créez les fichiers Python définissant une application exemple.
- Regroupez les fichiers d'exemple dans un fichier Python wheel.
- Créer un Job pour exécuter le fichier Python wheel.
- Exécutez le job et consultez les résultats.
Avant de commencer
Vous avez besoin des éléments suivants pour compléter cet exemple :
-
Python3
-
Les packages Python
wheeletsetuptools. Vous pouvez utiliserpippour installer ces packages. Par exemple, vous pouvez exécuter la commande suivante pour installer ces packages :Bashpip 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 affiche ces arguments. 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éez un fichier de métadonnées pour le package
Le fichier suivant contient des métadonnées décrivant le package. Enregistrez ceci 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 Python Wheel
La conversion des artefacts Python en un fichier Python wheel nécessite la spécification des métadonnées du package, telles que le nom du package et les points d'entrée. Le script suivant définit ces métadonnées.
Les entry_points définis dans ce script sont utilisés pour exécuter le package dans le workflow 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 Python wheel.
-
Enregistrez ce script dans un fichier nommé
setup.pyà la racine du répertoire que vous avez créé à l’étape 1 :Pythonfrom 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 packager votre code dans la distribution Python wheel :
```bash
python3 setup.py bdist_wheel
Cette commande crée le fichier Python wheel et l'enregistre dans le fichier dist/my_test_package-0.0.1-py3.none-any.whl de votre répertoire.
Étape 5. Créez un Job pour exécuter le fichier Python wheel
-
Dans votre Workspace, cliquez
sur **Tâches et pipelines** dans la barre latérale.
-
Cliquez sur Créer , puis sur Job .
-
Cliquez sur la vignette Python wheel pour configurer la première tâche. Si la vignette Python wheel n'est pas disponible, cliquez sur Ajouter un autre type de tâche et recherchez Python wheel .
-
En option, remplacez le nom du Job, qui est par default
New Job <date-time>, par le nom de votre Job. -
Sous **Nom de la tâche**, saisissez un nom pour la tâche.
-
Si nécessaire, sélectionnez Python wheel dans le menu déroulant Type .
-
Dans Nom du package,
my_test_packageentrez. La valeur Nom du package est le nom du package Python à importer. Dans cet exemple, le nom du package est la valeur attribuée aunameparameter danssetup.py. -
Dans Point d'entrée , saisissez
run. Le point d'entrée est l'une des valeurs spécifiées dans la collectionentry_pointsdu scriptsetup.py. Dans cet exemple,runest le seul point d'entrée défini. -
Dans **Compute**, sélectionnez un cluster Job existant ou **Ajouter un nouveau cluster Job**.
-
Spécifiez votre fichier Python wheel :
- Dans le menu déroulant Environnement et bibliothèques , cliquez sur
en regard de Default pour le modifier. Sinon, cliquez sur Ajouter un nouvel environnement pour configurer un nouvel environnement.
- Dans la boîte de dialogue Configurer l'environnement , cliquez sur Ajouter une dépendance .
- Cliquez sur
l'icône de dossier pour ouvrir le navigateur de fichiers. Glissez-déposez le fichier wheel que vous avez créé à l'étape 4 dans la boîte de dialogue Sélectionner une dépendance .
- Cliquez sur Confirmer .
- Dans le menu déroulant Environnement et bibliothèques , cliquez sur
-
Dans **Parameters**, sélectionnez **Positional arguments** ou **Keyword arguments** pour saisir la clé et la valeur de chaque parameter. Les arguments positionnels et par mot-clé sont tous deux transmis à la tâche Python wheel en tant qu'arguments de ligne de commande.
- Pour saisir des arguments positionnels, entrez les paramètres sous la forme d'un tableau de chaînes au format JSON, par exemple :
["first argument","first value","second argument","second value"]. - Pour saisir des arguments de mot-clé, cliquez
sur **Ajouter**, puis saisissez une clé et une valeur. Cliquez
à nouveau sur **Ajouter** pour saisir davantage d’arguments.
- Pour saisir des arguments positionnels, entrez les paramètres sous la forme d'un tableau de chaînes au format JSON, par exemple :
-
Cliquez sur Enregistrer la tâche .
Étape 6 : Exécutez le Job et affichez les détails d'exécution du Job
Cliquez sur pour exécuter le workflow. Pour afficher les détails de l'exécution, cliquez sur la tab **Exécutions**, puis cliquez sur le link dans la colonne **Start time** pour l'exécution dans la vue job runs.
Une fois l'exécution terminée, le résultat s'affiche dans le volet Sortie , y compris les arguments transmis à la tâche.
Étapes suivantes
Pour en savoir plus sur la création et l’exécution de tâches, consultez Lakeflow Jobs.