Delen via


Een Python-wielbestand ontwikkelen met databricks-assetbundels

In dit artikel wordt beschreven hoe u een Python-wielbestand bouwt, implementeert en uitvoert als onderdeel van een Databricks Asset Bundle-project . Zie Wat zijn Databricks-assetbundels?

Vereisten

Beslissing: Maak de bundel handmatig of met behulp van een sjabloon

Bepaal of u een startersbundel wilt maken met behulp van een sjabloon of dat u de bundel handmatig wilt maken. Het maken van de bundel met behulp van een sjabloon is sneller en eenvoudiger, maar de bundel produceert mogelijk inhoud die niet nodig is en de standaardinstellingen van de bundel moeten verder worden aangepast voor echte toepassingen. Als u de bundel handmatig maakt, hebt u volledige controle over de instellingen van de bundel, maar u moet bekend zijn met hoe bundels werken, omdat u al het werk vanaf het begin doet. Kies een van de volgende sets stappen:

De bundel maken met behulp van een sjabloon

In deze stappen maakt u de bundel met behulp van de standaardbundelsjabloon van Azure Databricks voor Python. Deze stappen helpen u bij het maken van een bundel die bestaat uit bestanden om in te bouwen in een Python-wielbestand en de definitie van een Azure Databricks-taak om dit Python-wielbestand te bouwen. Vervolgens valideert, implementeert en bouwt u de geïmplementeerde bestanden in een Python-wielbestand vanuit de Python-wieltaak in uw Azure Databricks-werkruimte.

De standaardbundelsjabloon van Azure Databricks voor Python maakt gebruik van setuptools om het Python-wielbestand te bouwen. Als u in plaats daarvan Poëzie wilt gebruiken om het Python-wielbestand te bouwen, volgt u de instructies verderop in deze sectie om de setuptools implementatie voor een Poëzie-implementatie te wisselen.

Stap 1: Verificatie instellen

In deze stap stelt u verificatie in tussen de Databricks CLI op uw ontwikkelcomputer en uw Azure Databricks-werkruimte. In dit artikel wordt ervan uitgegaan dat u OAuth-gebruikers-naar-machine-verificatie (U2M) en een bijbehorend Azure Databricks-configuratieprofiel DEFAULT voor verificatie wilt gebruiken.

Notitie

U2M-verificatie is geschikt voor het uitvoeren van deze stappen in realtime. Voor volledig geautomatiseerde werkstromen raadt Databricks u aan in plaats daarvan OAuth-verificatie van machine-naar-machine (M2M) te gebruiken. Zie de installatie-instructies voor M2M-verificatie in Verificatie.

  1. Gebruik de Databricks CLI om OAuth-tokenbeheer lokaal te starten door de volgende opdracht uit te voeren voor elke doelwerkruimte.

    Vervang in de volgende opdracht bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.netdoor <workspace-url> de URL van uw Azure Databricks per werkruimte.

    databricks auth login --host <workspace-url>
    
  2. De Databricks CLI vraagt u om de gegevens op te slaan die u hebt ingevoerd als een Azure Databricks-configuratieprofiel. Druk Enter om de voorgestelde profielnaam te accepteren of voer de naam van een nieuw of bestaand profiel in. Elk bestaand profiel met dezelfde naam wordt overschreven met de gegevens die u hebt ingevoerd. U kunt profielen gebruiken om snel uw verificatiecontext over te schakelen tussen meerdere werkruimten.

    Als u een lijst met bestaande profielen wilt ophalen, gebruikt u in een afzonderlijke terminal of opdrachtprompt de Databricks CLI om de opdracht databricks auth profilesuit te voeren. Als u de bestaande instellingen van een specifiek profiel wilt weergeven, voert u de opdracht databricks auth env --profile <profile-name>uit.

  3. Voltooi in uw webbrowser de instructies op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.

  4. Voer een van de volgende opdrachten uit om de huidige OAuth-tokenwaarde van een profiel en de geplande verlooptijdstempel van het token weer te geven:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Als u meerdere profielen met dezelfde --host waarde hebt, moet u mogelijk de --host en -p opties opgeven om de Databricks CLI te helpen de juiste overeenkomende OAuth-tokengegevens te vinden.

Stap 2: De bundel maken

Een bundel bevat de artefacten die u wilt implementeren en de instellingen voor de werkstromen die u wilt uitvoeren.

  1. Gebruik de terminal of opdrachtprompt om over te schakelen naar een map op uw lokale ontwikkelcomputer die de gegenereerde bundel van de sjabloon bevat.

  2. Gebruik de Databricks CLI-versie om de bundle init opdracht uit te voeren:

    databricks bundle init
    
  3. Laat Template to usede standaardwaarde staan default-python door op te drukken Enter.

  4. Laat Unique name for this projectde standaardwaarde van my_project, of typ een andere waarde en druk op Enter. Hiermee bepaalt u de naam van de hoofdmap voor deze bundel. Deze hoofdmap wordt gemaakt in uw huidige werkmap.

  5. Selecteer Include a stub (sample) notebookno en druk Enterop . Hiermee wordt de Databricks CLI geïnstrueerd om geen voorbeeldnotitieblok aan uw bundel toe te voegen.

  6. Selecteer Include a stub (sample) DLT pipelineno en druk Enterop . Hiermee geeft u de Databricks CLI de opdracht om geen voorbeeldpijplijn voor Delta Live Tables in uw bundel te definiëren.

  7. Laat Include a stub (sample) Python packagede standaardwaarde staan yes door op te drukken Enter. Hiermee geeft u de Databricks CLI de opdracht om voorbeeldbestanden van python-wielpakketten en gerelateerde build-instructies toe te voegen aan uw bundel.

Stap 3: De bundel verkennen

Als u de bestanden wilt bekijken die door de sjabloon zijn gegenereerd, gaat u naar de hoofdmap van uw zojuist gemaakte bundel en opent u deze map met uw favoriete IDE, bijvoorbeeld Visual Studio Code. Bestanden van bijzonder belang zijn onder andere:

  • databricks.yml: Dit bestand geeft de programmatische naam van de bundel op, bevat een verwijzing naar de definitie van de Python-wieltaak en geeft instellingen over de doelwerkruimte op.
  • resources/<project-name>_job.yml: Dit bestand geeft de instellingen van de Python-wieltaak op.
  • src/<project-name>: Deze map bevat de bestanden die door de Python-wieltaak worden gebruikt om het Python-wielbestand te bouwen.

Notitie

Als u het Python-wielbestand wilt installeren op een doelcluster waarop Databricks Runtime 12.2 LTS of lager is geïnstalleerd, moet u de volgende toewijzing op het hoogste niveau toevoegen aan het databricks.yml bestand:

# Applies to all tasks of type python_wheel_task.
experimental:
  python_wheel_wrapper: true

Met deze toewijzing wordt de Databricks CLI geïnstrueerd om het volgende te doen:

  • Implementeer een kopie van het Python-wielbestand op de achtergrond. Dit implementatiepad is doorgaans ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
  • Maak een notebook op de achtergrond met instructies voor het installeren van het voorgaande geïmplementeerde Python-wielbestand op het doelcluster. Het pad van dit notitieblok is doorgaans ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
  • Wanneer u een taak uitvoert die een Python-wieltaak bevat en die taken verwijzen naar het voorgaande Python-wielbestand, wordt er een taak gemaakt op de achtergrond waarop het voorgaande notebook wordt uitgevoerd.

U hoeft deze toewijzing niet op te geven voor doelclusters waarop Databricks Runtime 13.1 of hoger is geïnstalleerd, omdat Python-wielinstallaties van het Bestandssysteem van de Azure Databricks-werkruimte automatisch op deze doelclusters worden geïnstalleerd.

Stap 4: Werk de bundel van het project bij om Poëzie te gebruiken

Standaard geeft de bundelsjabloon het bouwen van het Python-wielbestand op met behulp van setuptools de bestanden setup.py en requirements-dev.txt. Als u deze standaardwaarden wilt behouden, gaat u verder met stap 5: Valideer het configuratiebestand van het projectbundel.

Als u de bundel van het project wilt bijwerken voor het gebruik van Poëzie in plaats van setuptools, moet u ervoor zorgen dat uw lokale ontwikkelcomputer voldoet aan de volgende vereisten:

  • Poëzie versie 1.6 of hoger. Als u de geïnstalleerde versie van Poëzie wilt controleren, voert u de opdracht poetry -V of poetry --version. Als u Poëzie wilt installeren of upgraden, raadpleegt u Installatie.
  • Python-versie 3.10 of hoger. Als u uw versie van Python wilt controleren, voert u de opdracht python -V of python --version.
  • Databricks CLI versie 0.209.0 of hoger. Voer de opdracht of databricks --versionde opdracht databricks -v uit in uw versie van de Databricks CLI. Zie De Databricks CLI installeren of bijwerken.

Breng de volgende wijzigingen aan in de bundel van het project:

  1. In de hoofdmap van de bundel geeft u de opdracht poetry om de Python-wheel-builds voor Poëzie te initialiseren door de volgende opdracht uit te voeren:

    poetry init
    
  2. Poëzie geeft verschillende aanwijzingen weer die u moet voltooien. Voor de Python-wielversies beantwoordt u deze prompts als volgt zodat deze overeenkomen met de gerelateerde standaardinstellingen in de bundel van het project:

    1. Typ Package namede naam van de onderliggende map onder /srcen druk op Enter. Dit moet ook de waarde van name het pakket zijn die is gedefinieerd in het bestand van setup.py de bundel.
    2. 0.0.1 Typ Versionen druk op Enter. Dit komt overeen met het versienummer dat is gedefinieerd in het bestand van src/<project-name>/__init__.py de bundel.
    3. Typ Descriptionvoor , typ wheel file based on <project-name>/src (vervangen door <project-name> de naam van het project) en druk op Enter. Dit komt overeen met de description waarde die is gedefinieerd in het bestand van setup.py de sjabloon.
    4. Druk op Enter.Author Deze standaardwaarde komt overeen met de auteur die is gedefinieerd in het bestand van setup.py de sjabloon.
    5. Druk op Enter.License Er is geen licentie gedefinieerd in de sjabloon.
    6. Compatible Python versionsVoer voor de Python-versie in die overeenkomt met de versie die overeenkomt met de versie op uw Azure Databricks-doelclusters (bijvoorbeeld ^3.10) en druk op Enter.
    7. Typ Would you like to define your main dependencies interactively? en druk op Enter.no U definieert uw afhankelijkheden later.
    8. Typ Would you like to define your development dependencies interactively? en druk op Enter.no U definieert uw afhankelijkheden later.
    9. Druk op Do you confirm generation? Enter.
  3. Nadat u de aanwijzingen hebt voltooid, voegt Poëzie een pyproject.toml bestand toe aan het project van de bundel. Zie het bestand pyproject.toml voor meer informatie over het pyproject.toml bestand.

  4. In de hoofdmap van de bundel moet u het bestand lezen poetry pyproject.toml , de afhankelijkheden oplossen en installeren, een poetry.lock bestand maken om de afhankelijkheden te vergrendelen en ten slotte een virtuele omgeving te maken. Voer hiervoor de volgende opdracht uit:

    poetry install
    
  5. Voeg de volgende sectie toe aan het einde van het pyproject.toml bestand, waarbij u vervangt door <project-name> de naam van de map die het src/<project-name>/main.py bestand bevat (bijvoorbeeld my_project):

    [tool.poetry.scripts]
    main = "<project-name>.main:main"
    

    In de sectie wordt het ingangspunt van het Python-wiel voor de Python-wieltaak opgegeven.

  6. Voeg de volgende toewijzing toe op het hoogste niveau van het bestand van de bundel databricks.yml :

    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    

    Met deze toewijzing wordt de Databricks CLI geïnstrueerd om Poëzie te gebruiken om een Python-wielbestand te bouwen.

  7. Verwijder de setup.py en requirements-dev.txt bestanden uit de bundel, omdat poëzie ze niet nodig heeft.

Stap 5: Het configuratiebestand voor de bundel van het project valideren

In deze stap controleert u of de bundelconfiguratie geldig is.

  1. Gebruik vanuit de hoofdmap de Databricks CLI om de bundle validate opdracht als volgt uit te voeren:

    databricks bundle validate
    
  2. Als er een samenvatting van de bundelconfiguratie wordt geretourneerd, is de validatie voltooid. Als er fouten worden geretourneerd, lost u de fouten op en herhaalt u deze stap.

Als u na deze stap wijzigingen aanbrengt in uw bundel, moet u deze stap herhalen om te controleren of uw bundelconfiguratie nog geldig is.

Stap 6: Het Python-wielbestand bouwen en het lokale project implementeren in de externe werkruimte

In deze stap bouwt u het Python-wielbestand, implementeert u het ingebouwde Python-wielbestand in uw externe Azure Databricks-werkruimte en maakt u de Azure Databricks-taak in uw werkruimte.

  1. Als u setuptoolsde volgende opdracht gebruikt, installeert u de wheel pakketten en setuptools pakketten als u dit nog niet hebt gedaan:

    pip3 install --upgrade wheel setuptools
    
  2. Gebruik in de Visual Studio Code-terminal de Databricks CLI om de bundle deploy opdracht als volgt uit te voeren:

    databricks bundle deploy -t dev
    
  3. Als u wilt controleren of het lokaal gebouwde Python-wielbestand is geïmplementeerd:

    1. Klik in de zijbalk van uw Azure Databricks-werkruimte op Werkruimte.
    2. Klik in de volgende map: Werkruimtegebruikers ><your-username>> > .bundle ><project-name>> dev > artifacts > .internal.><random-guid>

    Het Python-wielbestand moet zich in deze map bevinden.

  4. Als u wilt controleren of de taak is gemaakt:

    1. Klik in de zijbalk van uw Azure Databricks-werkruimte op Werkstromen.
    2. Klik op het tabblad Taken op [dev <your-username>] <project-name>_job.
    3. Klik op het tabblad Taken .

    Er moet één taak zijn: main_task.

Als u na deze stap wijzigingen aanbrengt in uw bundel, moet u stap 5-6 herhalen om te controleren of uw bundelconfiguratie nog steeds geldig is en het project vervolgens opnieuw implementeert.

Stap 7: Het geïmplementeerde project uitvoeren

In deze stap voert u de Azure Databricks-taak uit in uw werkruimte.

  1. Gebruik in de hoofdmap de Databricks CLI om de bundle run opdracht als volgt uit te voeren, waarbij u <project-name> de naam van uw project vervangt door stap 2:

    databricks bundle run -t dev <project-name>_job
    
  2. Kopieer de waarde die Run URL in uw terminal wordt weergegeven en plak deze waarde in uw webbrowser om uw Azure Databricks-werkruimte te openen.

  3. Nadat de taak is voltooid in uw Azure Databricks-werkruimte en een groene titelbalk wordt weergegeven, klikt u op de main_task taak om de resultaten te bekijken.

Als u na deze stap wijzigingen aanbrengt in uw bundel, moet u stap 5-7 herhalen om te controleren of uw bundelconfiguratie nog geldig is, het project opnieuw implementeert en het opnieuw geïmplementeerde project uitvoert.

U hebt het einde van de stappen voor het maken van een bundel bereikt met behulp van een sjabloon.

De bundel handmatig maken

In deze stappen maakt u de bundel vanaf het begin met de hand. Deze stappen helpen u bij het maken van een bundel die bestaat uit bestanden om in te bouwen in een Python-wielbestand en de definitie van een Databricks-taak om dit Python-wielbestand te bouwen. Vervolgens valideert, implementeert en bouwt u de geïmplementeerde bestanden in een Python-wielbestand vanuit de Python-wieltaak in uw Databricks-werkruimte.

Deze stappen omvatten het toevoegen van inhoud aan een YAML-bestand. Desgewenst wilt u een geïntegreerde ontwikkelomgeving (IDE) gebruiken die automatische schemasuggesties en acties biedt bij het werken met YAML-bestanden. In de volgende stappen wordt Visual Studio Code gebruikt met de YAML-extensie die is geïnstalleerd vanuit Visual Studio Code Marketplace.

Bij deze stappen wordt ervan uitgegaan dat u het volgende al kent:

Volg deze instructies om een voorbeeldbundel te maken waarmee een Python-wielbestand wordt gemaakt met Poëzie of setuptools, het Python-wielbestand wordt geïmplementeerd en vervolgens het geïmplementeerde Python-wielbestand wordt uitgevoerd.

Als u al een Python-wielbestand hebt gemaakt en alleen wilt implementeren en uitvoeren, gaat u verder met het opgeven van de Python-wielinstellingen in het bundelconfiguratiebestand in stap 3: het configuratiebestand van de bundel maken.

Stap 1: Verificatie instellen

In deze stap stelt u verificatie in tussen de Databricks CLI op uw ontwikkelcomputer en uw Azure Databricks-werkruimte. In dit artikel wordt ervan uitgegaan dat u OAuth-gebruikers-naar-machine-verificatie (U2M) en een bijbehorend Azure Databricks-configuratieprofiel DEFAULT voor verificatie wilt gebruiken.

Notitie

U2M-verificatie is geschikt voor het uitvoeren van deze stappen in realtime. Voor volledig geautomatiseerde werkstromen raadt Databricks u aan in plaats daarvan OAuth-verificatie van machine-naar-machine (M2M) te gebruiken. Zie de installatie-instructies voor M2M-verificatie in Verificatie.

  1. Gebruik de Databricks CLI om OAuth-tokenbeheer lokaal te starten door de volgende opdracht uit te voeren voor elke doelwerkruimte.

    Vervang in de volgende opdracht bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.netdoor <workspace-url> de URL van uw Azure Databricks per werkruimte.

    databricks auth login --host <workspace-url>
    
  2. De Databricks CLI vraagt u om de gegevens op te slaan die u hebt ingevoerd als een Azure Databricks-configuratieprofiel. Druk Enter om de voorgestelde profielnaam te accepteren of voer de naam van een nieuw of bestaand profiel in. Elk bestaand profiel met dezelfde naam wordt overschreven met de gegevens die u hebt ingevoerd. U kunt profielen gebruiken om snel uw verificatiecontext over te schakelen tussen meerdere werkruimten.

    Als u een lijst met bestaande profielen wilt ophalen, gebruikt u in een afzonderlijke terminal of opdrachtprompt de Databricks CLI om de opdracht databricks auth profilesuit te voeren. Als u de bestaande instellingen van een specifiek profiel wilt weergeven, voert u de opdracht databricks auth env --profile <profile-name>uit.

  3. Voltooi in uw webbrowser de instructies op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.

  4. Voer een van de volgende opdrachten uit om de huidige OAuth-tokenwaarde van een profiel en de geplande verlooptijdstempel van het token weer te geven:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Als u meerdere profielen met dezelfde --host waarde hebt, moet u mogelijk de --host en -p opties opgeven om de Databricks CLI te helpen de juiste overeenkomende OAuth-tokengegevens te vinden.

Stap 2: De bundel maken

Een bundel bevat de artefacten die u wilt implementeren en de instellingen voor de werkstromen die u wilt uitvoeren.

  1. Maak in de hoofdmap van uw bundel de volgende mappen en bestanden, afhankelijk van of u Poëzie gebruikt of setuptools voor het bouwen van Python-wielbestanden:

    Poëzie

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── pyproject.toml
    

    Setuptools

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── setup.py
    
  2. Laat het __init__.py bestand leeg.

  3. Voeg de volgende code toe aan het main.py bestand en sla het bestand op:

    from my_package.my_module import *
    
    def main():
    
      first = 200
      second = 400
    
      print(f"{first} + {second} = {add_two_numbers(first, second)}")
      print(f"{second} - {first} = {subtract_two_numbers(second, first)}")
      print(f"{first} * {second} = {multiply_two_numbers(first, second)}")
      print(f"{second} / {first} = {divide_two_numbers(second, first)}")
    
    if __name__ == "__main__":
      main()
    
  4. Voeg de volgende code toe aan het my_module.py bestand en sla het bestand op:

    def add_two_numbers(a, b):
      return a + b
    
    def subtract_two_numbers(a, b):
      return a - b
    
    def multiply_two_numbers(a, b):
      return a * b
    
    def divide_two_numbers(a, b):
      return a / b
    
  5. Voeg de volgende code toe aan het pyproject.toml of setup.py bestand en sla het bestand op:

    Pyproject.toml

    [tool.poetry]
    name = "my_package"
    version = "0.0.1"
    description = "<my-package-description>"
    authors = ["my-author-name <my-author-name>@<my-organization>"]
    
    [tool.poetry.dependencies]
    python = "^3.10"
    
    [build-system]
    requires = ["poetry-core"]
    build-backend = "poetry.core.masonry.api"
    
    [tool.poetry.scripts]
    main = "my_package.main:main"
    
    • Vervang door my-author-name de naam van de primaire contactpersoon van uw organisatie.
    • Vervang door my-author-name>@<my-organization het primaire e-mailadres van uw organisatie.
    • Vervang door <my-package-description> een weergavebeschrijving voor uw Python-wielbestand.

    Setup.py

    from setuptools import setup, find_packages
    
    import src
    
    setup(
      name = "my_package",
      version = "0.0.1",
      author = "<my-author-name>",
      url = "https://<my-url>",
      author_email = "<my-author-name>@<my-organization>",
      description = "<my-package-description>",
      packages=find_packages(where='./src'),
      package_dir={'': 'src'},
      entry_points={
        "packages": [
          "main=my_package.main:main"
        ]
      },
      install_requires=[
        "setuptools"
      ]
    )
    
    • Vervang door https://<my-url> de URL van uw organisatie.
    • Vervang door <my-author-name> de naam van de primaire contactpersoon van uw organisatie.
    • Vervang door <my-author-name>@<my-organization> het primaire e-mailadres van uw organisatie.
    • Vervang door <my-package-description> een weergavebeschrijving voor uw Python-wielbestand.

Stap 3: Het configuratiebestand van de bundel maken

Een bundelconfiguratiebestand beschrijft de artefacten die u wilt implementeren en de werkstromen die u wilt uitvoeren.

  1. Voeg in de hoofdmap van uw bundel een bundelconfiguratiebestand toe met de naam databricks.yml. Voeg de volgende code toe aan dit bestand:

    Poëzie

    Notitie

    Als u al een Python-wielbestand hebt gemaakt en alleen wilt implementeren, wijzigt u het volgende bundelconfiguratiebestand door de artifacts toewijzing weg te laten. De Databricks CLI gaat er vervolgens vanuit dat het Python-wielbestand al is gebouwd en automatisch de bestanden implementeert die zijn opgegeven in de vermeldingen van whl de libraries matrix.

    bundle:
      name: my-wheel-bundle
    
    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Setuptools

    bundle:
      name: my-wheel-bundle
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Vervang <workspace-url> bijvoorbeeld door uw URLhttps://adb-1234567890123456.7.azuredatabricks.net per werkruimte.

    De artifacts toewijzing is vereist voor het bouwen van Python-wielbestanden met Poëzie en is optioneel om Python wheel-bestanden te bouwen met setuptools. De artifacts toewijzing bevat een of meer artefactdefinities met de volgende toewijzingen:

    • De type toewijzing moet aanwezig zijn en ingesteld om op te whl geven dat een Python-wielbestand moet worden gebouwd. whl Is setuptoolsde standaardinstelling als er geen artefactdefinities zijn opgegeven.
    • De path toewijzing geeft het pad naar het pyproject.toml bestand voor Poëzie of naar het setup.py bestand voor setuptools. Dit pad is relatief ten opzichte van het databricks.yml bestand. Dit setuptoolspad is . standaard (dezelfde map als het databricks.yml bestand).
    • De build toewijzing geeft eventuele aangepaste buildopdrachten aan die moeten worden uitgevoerd om het Python-wielbestand te bouwen. Voor setuptools, deze opdracht is python3 setup.py bdist wheel standaard.
    • De files toewijzing bestaat uit een of meer source toewijzingen die eventuele extra bestanden opgeven die moeten worden opgenomen in de Python-wielbuild. Er is geen standaardinstelling.

    Notitie

    Als u het Python-wielbestand wilt installeren op een doelcluster waarop Databricks Runtime 12.2 LTS of lager is geïnstalleerd, moet u de volgende toewijzing op het hoogste niveau toevoegen aan het databricks.yml bestand:

    # Applies to jobs with python_wheel_task and that use
    # clusters with Databricks Runtime 13.0 or below installed.
    experimental:
      python_wheel_wrapper: true
    

    Met deze toewijzing wordt de Databricks CLI geïnstrueerd om het volgende te doen:

    • Hiermee wordt een kopie van het Python-wielbestand op de achtergrond geïmplementeerd. Dit implementatiepad is doorgaans ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
    • Hiermee maakt u een notebook op de achtergrond met instructies voor het installeren van het voorgaande geïmplementeerde Python-wielbestand op het doelcluster. Het pad van dit notitieblok is doorgaans ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
    • Wanneer u een taak uitvoert die een Python-wieltaak bevat en die taak verwijst naar het voorgaande Python-wielbestand, wordt er een taak gemaakt op de achtergrond waarop het voorgaande notebook wordt uitgevoerd.

    U hoeft deze toewijzing niet op te geven voor doelclusters waarop Databricks Runtime 13.1 of hoger is geïnstalleerd, omdat Python-wielinstallaties van het Bestandssysteem van de Azure Databricks-werkruimte automatisch op deze doelclusters worden geïnstalleerd.

  2. Als u Poëzie gebruikt, gaat u als volgt te werk:

    • Installeer Poëzie, versie 1.6 of hoger, als deze nog niet is geïnstalleerd. Als u de geïnstalleerde versie van Poëzie wilt controleren, voert u de opdracht poetry -V of poetry --version.
    • Zorg ervoor dat Python versie 3.10 of hoger is geïnstalleerd. Als u uw versie van Python wilt controleren, voert u de opdracht python -V of python --version.
    • Zorg ervoor dat u Databricks CLI versie 0.209.0 of hoger hebt. Voer de opdracht of databricks --versionde opdracht databricks -v uit in uw versie van de Databricks CLI. Zie De Databricks CLI installeren of bijwerken.
  3. Als u setuptoolsde pakketten gebruikt, installeert u de wheel pakketten setuptools als deze nog niet zijn geïnstalleerd door de volgende opdracht uit te voeren:

    pip3 install --upgrade wheel setuptools
    
  4. Als u van plan bent deze bundel op te slaan met een Git-provider, voegt u een .gitignore bestand toe in de hoofdmap van het project en voegt u de volgende vermeldingen toe aan dit bestand:

    Poëzie

    .databricks
    dist
    

    Setuptools

    .databricks
    build
    dist
    src/my_package/my_package.egg-info
    

Stap 4: Het configuratiebestand van het projectbundel valideren

In deze stap controleert u of de bundelconfiguratie geldig is.

  1. Valideer vanuit de hoofdmap het bundelconfiguratiebestand:

    databricks bundle validate
    
  2. Als er een samenvatting van de bundelconfiguratie wordt geretourneerd, is de validatie voltooid. Als er fouten worden geretourneerd, lost u de fouten op en herhaalt u deze stap.

Als u na deze stap wijzigingen aanbrengt in uw bundel, moet u deze stap herhalen om te controleren of uw bundelconfiguratie nog geldig is.

Stap 5: Het Python-wielbestand bouwen en het lokale project implementeren in de externe werkruimte

Bouw het Python-wielbestand lokaal, implementeer het ingebouwde Python-wielbestand in uw werkruimte, implementeer het notebook in uw werkruimte en maak de taak in uw werkruimte:

databricks bundle deploy -t dev

Stap 6: Het geïmplementeerde project uitvoeren

  1. Voer de geïmplementeerde taak uit, die gebruikmaakt van het geïmplementeerde notebook om het geïmplementeerde Python-wielbestand aan te roepen:

    databricks bundle run -t dev wheel-job
    
  2. Kopieer de Run URL uitvoer en plak deze in de adresbalk van uw webbrowser.

  3. Op de uitvoerpagina van de taak worden de volgende resultaten weergegeven:

    200 + 400 = 600
    400 - 200 = 200
    200 * 400 = 80000
    400 / 200 = 2.0
    

Als u na deze stap wijzigingen aanbrengt in uw bundel, moet u stap 3-5 herhalen om te controleren of uw bundelconfiguratie nog geldig is, het project opnieuw implementeert en het opnieuw geïmplementeerde project uitvoert.

Een Python-wielbestand voor een taak bouwen en installeren

Als u een Python-wielbestand wilt maken met Poëzie of setuptoolsen vervolgens dat Python-wielbestand in een taak wilt gebruiken, moet u een of twee toewijzingen toevoegen aan uw databricks.yml bestand.

Als u Poëzie gebruikt, moet u de volgende artifacts toewijzing in het databricks.yml bestand opnemen. Met deze toewijzing wordt de poetry build opdracht uitgevoerd en wordt het pyproject.toml bestand gebruikt dat zich in dezelfde map bevindt als het databricks.yml bestand:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Notitie

De artifacts toewijzing is optioneel voor setuptools. setuptools Voor de Databricks CLI wordt standaard de opdracht python3 setup.py bdist_wheel uitgevoerd en wordt het setup.py bestand gebruikt dat zich in dezelfde map bevindt als het databricks.yml bestand. De Databricks CLI gaat ervan uit dat u al een opdracht hebt uitgevoerd, bijvoorbeeld pip3 install --upgrade wheel setuptools om de wheel en setuptools pakketten te installeren als ze nog niet zijn geïnstalleerd.

De toewijzing van libraries de taaktaak moet ook een whl waarde bevatten waarmee het pad naar het ingebouwde Python-wielbestand wordt opgegeven ten opzichte van het configuratiebestand waarin het is gedeclareerd. In het volgende voorbeeld ziet u dit in een notebook-taak (met het beletselteken wordt de weggelaten inhoud voor beknoptheid aangegeven):

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-job-notebook-task
          notebook_task:
            notebook_path: ./my_notebook.py
          libraries:
            - whl: ./dist/*.whl
          new_cluster:
            # ...

Een Python-wielbestand voor een pijplijn bouwen en installeren

Als u een Python-wielbestand wilt maken met Poëzie of setuptools vervolgens wilt verwijzen naar dat Python-wielbestand in een Delta Live Tables-pijplijn, moet u een toewijzing toevoegen aan uw databricks.yml bestand als u Poëzie gebruikt en moet u als volgt een %pip install opdracht toevoegen aan uw pijplijnnotitieblok.

Als u Poëzie gebruikt, moet u de volgende artifacts toewijzing in het databricks.yml bestand opnemen. Met deze toewijzing wordt de poetry build opdracht uitgevoerd en wordt het pyproject.toml bestand gebruikt dat zich in dezelfde map bevindt als het databricks.yml bestand:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Notitie

De artifacts toewijzing is optioneel voor setuptools. setuptools Voor de Databricks CLI wordt standaard de opdracht python3 setup.py bdist_wheel uitgevoerd en wordt het setup.py bestand gebruikt dat zich in dezelfde map bevindt als het databricks.yml bestand. De Databricks CLI gaat ervan uit dat u al een opdracht hebt uitgevoerd, bijvoorbeeld pip3 install --upgrade wheel setuptools om de wheel en setuptools pakketten te installeren als ze nog niet zijn geïnstalleerd.

Het bijbehorende pijplijnnotebook moet ook een %pip install opdracht bevatten om het Python-wielbestand te installeren dat is gemaakt. Zie Python-bibliotheken.