Een Python-wielbestand gebruiken in een Azure Databricks-taak
Een Python-wielbestand is een standaardmethode voor het verpakken en distribueren van de bestanden die nodig zijn om een Python-toepassing uit te voeren. Met behulp van de Python-wieltaak kunt u zorgen voor een snelle en betrouwbare installatie van Python-code in uw Azure Databricks-taken. Dit artikel bevat een voorbeeld van het maken van een Python-wielbestand en een taak waarmee de toepassing wordt uitgevoerd die is verpakt in het Python-wielbestand. In dit voorbeeld gaat u het volgende doen:
- Maak de Python-bestanden die een voorbeeldtoepassing definiëren.
- Bundel de voorbeeldbestanden in een Python-wielbestand.
- Maak een taak om het Python-wielbestand uit te voeren.
- Voer de taak uit en bekijk de resultaten.
Voordat u begint
U hebt het volgende nodig om dit voorbeeld te voltooien:
Python3
wheel
Python ensetuptool
pakketten. U kunt deze pakketten installerenpip
. U kunt bijvoorbeeld de volgende opdracht uitvoeren om deze pakketten te installeren:pip install wheel setuptools
Stap 1: Een lokale map maken voor het voorbeeld
Maak een lokale map voor het opslaan van de voorbeeldcode en gegenereerde artefacten, databricks_wheel_test
bijvoorbeeld.
Stap 2: Het Python-voorbeeldscript maken
Het volgende Python-voorbeeld is een eenvoudig script waarmee invoerargumenten worden gelezen en die argumenten worden afgedrukt. Kopieer dit script en sla het op in een pad met de naam my_test_code/__main__.py
in de map die u in de vorige stap hebt gemaakt.
"""
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()
Stap 3: Een metagegevensbestand voor het pakket maken
Het volgende bestand bevat metagegevens die het pakket beschrijven. Sla dit op in een pad dat wordt aangeroepen my_test_code/__init__.py
in de map die u in stap 1 hebt gemaakt.
__version__ = "0.0.1"
__author__ = "Databricks"
Stap 4: Het Python-wielbestand maken
Voor het converteren van de Python-artefacten naar een Python-wielbestand moet u pakketmetagegevens opgeven, zoals de pakketnaam en toegangspunten. Het volgende script definieert deze metagegevens.
Notitie
De entry_points
gedefinieerde in dit script worden gebruikt om het pakket uit te voeren in de Azure Databricks-werkstroom. In elke waarde in entry_points
, de waarde voor =
(in dit voorbeeld run
) is de naam van het toegangspunt en wordt gebruikt om de Python-wieltaak te configureren.
Sla dit script op in een bestand met de naam
setup.py
in de hoofdmap van de map die u in stap 1 hebt gemaakt: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' ] )
Ga naar de map die u in stap 1 hebt gemaakt en voer de volgende opdracht uit om uw code in te pakken in de Python-wieldistributie:
python3 setup.py bdist_wheel
Met deze opdracht maakt u het Python-wielbestand en slaat u het op in het dist/my_test_package-0.0.1-py3.none-any.whl
bestand in uw map.
Stap 5. Een Azure Databricks-taak maken om het Python-wielbestand uit te voeren
Ga naar de landingspagina van Azure Databricks en voer een van de volgende handelingen uit:
- Klik in de zijbalk op Werkstromen en klik op .
- Klik in de zijbalk op Nieuw en selecteer Taak in het menu.
Vervang in het taakdialoogvenster dat wordt weergegeven op het tabblad Taken een naam voor uw taak toevoegen... door uw taaknaam, bijvoorbeeld
Python wheel example
.Voer in De naam van de taak een naam in voor de taak, bijvoorbeeld
python_wheel_task
.Selecteer Python Wheel in Type.
Voer in pakketnaam de naam in
my_test_package
. De waarde pakketnaam is de naam van het Python-pakket dat moet worden geïmporteerd. In dit voorbeeld is de pakketnaam de waarde die is toegewezen aan dename
parameter insetup.py
.Voer in invoerpunt in
run
. Het toegangspunt is een van de waarden die zijn opgegeven in deentry_points
verzameling in hetsetup.py
script. In dit voorbeeldrun
is het enige toegangspunt gedefinieerd.Selecteer in Compute een bestaand taakcluster of voeg een nieuw taakcluster toe.
Klik onder Afhankelijke bibliotheken op Toevoegen. Sleep in het dialoogvenster Afhankelijke bibliotheek toevoegen, met Werkruimte geselecteerd, het
my_test_package-0.0.1-py3-none-any.whl
bestand dat u in stap 4 hebt gemaakt naar het gebied Neerzetten van het dialoogvenster.Klik op Toevoegen.
Selecteer in Parameters positionele argumenten of trefwoordargumenten om de sleutel en de waarde van elke parameter in te voeren. Zowel positionele als trefwoordargumenten worden als opdrachtregelargumenten doorgegeven aan de Python-wieltaak.
- Als u positionele argumenten wilt invoeren, voert u parameters in als een matrix met JSON-indeling met tekenreeksen, bijvoorbeeld:
["first argument","first value","second argument","second value"]
. - Als u trefwoordargumenten wilt invoeren, klikt u op + Toevoegen en voert u een sleutel en waarde in. Klik nogmaals op + Toevoegen om meer argumenten in te voeren.
- Als u positionele argumenten wilt invoeren, voert u parameters in als een matrix met JSON-indeling met tekenreeksen, bijvoorbeeld:
Klik op Taak maken.
Stap 6: Voer de taak uit en bekijk de details van de taakuitvoering
Klik hier om de werkstroom uit te voeren. Als u details voor de uitvoering wilt weergeven, klikt u op Uitvoering weergeven in het pop-upvenster Geactiveerde uitvoering of klikt u op de koppeling in de kolom Begintijd voor de uitvoering in de weergave taakuitvoeringen.
Wanneer de uitvoering is voltooid, wordt de uitvoer weergegeven in het deelvenster Uitvoer , inclusief de argumenten die aan de taak zijn doorgegeven.