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 och setuptool paket. Du kan använda pip 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.

  1. 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'
      ]
    )
    
  2. Ä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

  1. Gå till din Azure Databricks-landningssida och gör något av följande:

    • I sidofältet klickar du på Ikon för arbetsflöden Arbetsflöden och klickar på Knappen Skapa jobb.
    • I sidofältet klickar du på Ny ikon Nytt och väljer Jobb på menyn.
  2. 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.

  3. I Uppgiftsnamn anger du ett namn för aktiviteten, till exempel python_wheel_task.

  4. I Typ väljer du Python-hjul.

  5. 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 parametern name i setup.py.

  6. I Startpunkt anger du run. Startpunkten är ett av de värden som anges i entry_points samlingen i skriptet setup.py . I det här exemplet run är den enda startpunkten definierad.

  7. I Beräkning väljer du ett befintligt jobbkluster eller Lägg till nytt jobbkluster.

  8. 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.

  9. Klicka på Lägg till.

  10. 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.
  11. Klicka på Skapa uppgift.

Steg 6: Kör jobbet och visa jobbkörningsinformationen

Klicka Knappen Kör nu 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.