Använda en Python-hjulfil i ett Azure Databricks-jobb
En Python-hjulfil är ett standard sätt att paketera och distribuera de filer som krävs för att köra ett Python-program. Med hjälp av Python-hjuluppgiften kan du säkerställa snabb och tillförlitlig installation av Python-kod i dina Azure Databricks-jobb. Den här artikeln innehåller ett exempel på hur du skapar en Python-hjulfil och ett jobb som kör programmet som paketeras i Python-hjulfilen. I det här exemplet kommer du att:
- Skapa Python-filerna som definierar ett exempelprogram.
- Paketera exempelfilerna i en Python-hjulfil.
- Skapa ett jobb för att köra Python-hjulfilen.
- Kör jobbet och visa resultatet.
Innan du börjar
Du behöver följande för att slutföra det här exemplet:
Python3
Python
wheel
ochsetuptool
paket. Du kan användapip
för att installera dessa paket. Du kan till exempel köra följande kommando för att installera dessa paket:pip install wheel setuptools
Steg 1: Skapa en lokal katalog för exemplet
Skapa en lokal katalog för att lagra exempelkoden och genererade artefakter, till exempel databricks_wheel_test
.
Steg 2: Skapa python-exempelskriptet
Följande Python-exempel är ett enkelt skript som läser indataargument och skriver ut argumenten. Kopiera det här skriptet och spara det till en sökväg som heter my_test_code/__main__.py
i katalogen som du skapade i föregående steg.
"""
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()
Steg 3: Skapa en metadatafil för paketet
Följande fil innehåller metadata som beskriver paketet. Spara detta i en sökväg som heter my_test_code/__init__.py
i katalogen som du skapade i steg 1.
__version__ = "0.0.1"
__author__ = "Databricks"
Steg 4: Skapa Python-hjulfilen
Om du konverterar Python-artefakterna till en Python-hjulfil måste du ange paketmetadata, till exempel paketnamnet och startpunkterna. Följande skript definierar dessa metadata.
Kommentar
Den entry_points
som definieras i det här skriptet används för att köra paketet i Azure Databricks-arbetsflödet. I varje värde i entry_points
är värdet före =
(i det här exemplet run
) namnet på startpunkten och används för att konfigurera Python-hjulaktiviteten.
Spara skriptet i en fil med namnet
setup.py
i roten för katalogen som du skapade i steg 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' ] )
Ändra till den katalog som du skapade i steg 1 och kör följande kommando för att paketera koden i Python-hjuldistributionen:
python3 setup.py bdist_wheel
Det här kommandot skapar Python-hjulfilen och sparar den dist/my_test_package-0.0.1-py3.none-any.whl
i filen i katalogen.
Steg 5. Skapa ett Azure Databricks-jobb för att köra Python-hjulfilen
Gå till din Azure Databricks-landningssida och gör något av följande:
- I sidofältet klickar du på Arbetsflöden och klickar på .
- I sidofältet klickar du på Nytt och väljer Jobb på menyn.
I dialogrutan aktivitet som visas på fliken Uppgifter ersätter du Lägg till ett namn för jobbet... med ditt jobbnamn, till exempel
Python wheel example
.I Uppgiftsnamn anger du ett namn för aktiviteten, till exempel
python_wheel_task
.I Typ väljer du Python-hjul.
I Paketnamn anger du
my_test_package
. Värdet Paketnamn är namnet på Python-paketet som ska importeras. I det här exemplet är paketnamnet det värde som tilldelats parameternname
isetup.py
.I Startpunkt anger du
run
. Startpunkten är ett av de värden som anges ientry_points
samlingen i skriptetsetup.py
. I det här exempletrun
är den enda startpunkten definierad.I Beräkning väljer du ett befintligt jobbkluster eller Lägg till nytt jobbkluster.
Klicka på Lägg till under Beroende bibliotek. I dialogrutan Lägg till beroende bibliotek, med Arbetsyta markerad, drar du
my_test_package-0.0.1-py3-none-any.whl
filen som skapades i steg 4 till dialogrutans Drop-fil här.Klicka på Lägg till.
I Parametrar väljer du Positionsargument eller Nyckelordsargument för att ange nyckeln och värdet för varje parameter. Både positions- och nyckelordsargument skickas till Python-hjulaktiviteten som kommandoradsargument.
- Ange positionella argument genom att ange parametrar som en JSON-formaterad matris med strängar, till exempel:
["first argument","first value","second argument","second value"]
. - Om du vill ange nyckelordsargument klickar du på + Lägg till och anger en nyckel och ett värde. Klicka på + Lägg till igen för att ange fler argument.
- Ange positionella argument genom att ange parametrar som en JSON-formaterad matris med strängar, till exempel:
Klicka på Skapa uppgift.
Steg 6: Kör jobbet och visa jobbkörningsinformationen
Klicka för att köra arbetsflödet. Om du vill visa information om körningen klickar du på Visa körning i popup-fönstret Utlöst körning eller klickar på länken i kolumnen Starttid för körningen i jobbkörningsvyn.
När körningen är klar visas utdata i panelen Utdata , inklusive argumenten som skickas till uppgiften.
Nästa steg
Mer information om hur du skapar och kör Azure Databricks-jobb finns i Schemalägga och samordna arbetsflöden.