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
- Databricks CLI versie 0.218.0 of hoger. Voer de opdracht
databricks -v
uit om de geïnstalleerde versie van de Databricks CLI te controleren. Zie De Databricks CLI installeren of bijwerken om de Databricks CLI te installeren of bij te werken. - Voor de externe werkruimte moeten werkruimtebestanden zijn ingeschakeld. Zie Wat zijn werkruimtebestanden?
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.
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.net
door<workspace-url>
de URL van uw Azure Databricks per werkruimte.databricks auth login --host <workspace-url>
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 profiles
uit te voeren. Als u de bestaande instellingen van een specifiek profiel wilt weergeven, voert u de opdrachtdatabricks auth env --profile <profile-name>
uit.Voltooi in uw webbrowser de instructies op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.
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.
Gebruik de terminal of opdrachtprompt om over te schakelen naar een map op uw lokale ontwikkelcomputer die de gegenereerde bundel van de sjabloon bevat.
Gebruik de Databricks CLI-versie om de
bundle init
opdracht uit te voeren:databricks bundle init
Laat
Template to use
de standaardwaarde staandefault-python
door op te drukkenEnter
.Laat
Unique name for this project
de standaardwaarde vanmy_project
, of typ een andere waarde en druk opEnter
. Hiermee bepaalt u de naam van de hoofdmap voor deze bundel. Deze hoofdmap wordt gemaakt in uw huidige werkmap.Selecteer
Include a stub (sample) notebook
no
en drukEnter
op . Hiermee wordt de Databricks CLI geïnstrueerd om geen voorbeeldnotitieblok aan uw bundel toe te voegen.Selecteer
Include a stub (sample) DLT pipeline
no
en drukEnter
op . Hiermee geeft u de Databricks CLI de opdracht om geen voorbeeldpijplijn voor Delta Live Tables in uw bundel te definiëren.Laat
Include a stub (sample) Python package
de standaardwaarde staanyes
door op te drukkenEnter
. 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
ofpoetry --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
ofpython --version
. - Databricks CLI versie 0.209.0 of hoger. Voer de opdracht of
databricks --version
de opdrachtdatabricks -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:
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
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:
- Typ
Package name
de naam van de onderliggende map onder/src
en druk opEnter
. Dit moet ook de waarde vanname
het pakket zijn die is gedefinieerd in het bestand vansetup.py
de bundel. 0.0.1
TypVersion
en druk opEnter
. Dit komt overeen met het versienummer dat is gedefinieerd in het bestand vansrc/<project-name>/__init__.py
de bundel.- Typ
Description
voor , typwheel file based on <project-name>/src
(vervangen door<project-name>
de naam van het project) en druk opEnter
. Dit komt overeen met dedescription
waarde die is gedefinieerd in het bestand vansetup.py
de sjabloon. - Druk op
Enter
.Author
Deze standaardwaarde komt overeen met de auteur die is gedefinieerd in het bestand vansetup.py
de sjabloon. - Druk op
Enter
.License
Er is geen licentie gedefinieerd in de sjabloon. Compatible Python versions
Voer 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 opEnter
.- Typ
Would you like to define your main dependencies interactively?
en druk opEnter
.no
U definieert uw afhankelijkheden later. - Typ
Would you like to define your development dependencies interactively?
en druk opEnter
.no
U definieert uw afhankelijkheden later. - Druk op
Do you confirm generation?
Enter
.
- Typ
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 hetpyproject.toml
bestand.In de hoofdmap van de bundel moet u het bestand lezen
poetry
pyproject.toml
, de afhankelijkheden oplossen en installeren, eenpoetry.lock
bestand maken om de afhankelijkheden te vergrendelen en ten slotte een virtuele omgeving te maken. Voer hiervoor de volgende opdracht uit:poetry install
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 hetsrc/<project-name>/main.py
bestand bevat (bijvoorbeeldmy_project
):[tool.poetry.scripts] main = "<project-name>.main:main"
In de sectie wordt het ingangspunt van het Python-wiel voor de Python-wieltaak opgegeven.
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.
Verwijder de
setup.py
enrequirements-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.
Gebruik vanuit de hoofdmap de Databricks CLI om de
bundle validate
opdracht als volgt uit te voeren:databricks bundle validate
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.
Als u
setuptools
de volgende opdracht gebruikt, installeert u dewheel
pakketten ensetuptools
pakketten als u dit nog niet hebt gedaan:pip3 install --upgrade wheel setuptools
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
Als u wilt controleren of het lokaal gebouwde Python-wielbestand is geïmplementeerd:
- Klik in de zijbalk van uw Azure Databricks-werkruimte op Werkruimte.
- 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.
Als u wilt controleren of de taak is gemaakt:
- Klik in de zijbalk van uw Azure Databricks-werkruimte op Werkstromen.
- Klik op het tabblad Taken op [dev
<your-username>
]<project-name>
_job. - 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.
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
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.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:
- Het maken, bouwen en werken met Python wheel-bestanden met Poëzie of
setuptools
. Zie Basisgebruik voor Poëzie. Ziesetuptools
de Gebruikershandleiding voor Python Packaging voor meer informatie. - Python-wielbestanden gebruiken als onderdeel van een Azure Databricks-taak. Zie Een Python-wielbestand gebruiken in een Azure Databricks-taak.
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.
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.net
door<workspace-url>
de URL van uw Azure Databricks per werkruimte.databricks auth login --host <workspace-url>
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 profiles
uit te voeren. Als u de bestaande instellingen van een specifiek profiel wilt weergeven, voert u de opdrachtdatabricks auth env --profile <profile-name>
uit.Voltooi in uw webbrowser de instructies op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.
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.
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
Laat het
__init__.py
bestand leeg.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()
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
Voeg de volgende code toe aan het
pyproject.toml
ofsetup.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.
- Vervang door
Stap 3: Het configuratiebestand van de bundel maken
Een bundelconfiguratiebestand beschrijft de artefacten die u wilt implementeren en de werkstromen die u wilt uitvoeren.
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 vanwhl
delibraries
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 metsetuptools
. Deartifacts
toewijzing bevat een of meer artefactdefinities met de volgende toewijzingen:- De
type
toewijzing moet aanwezig zijn en ingesteld om op tewhl
geven dat een Python-wielbestand moet worden gebouwd.whl
Issetuptools
de standaardinstelling als er geen artefactdefinities zijn opgegeven. - De
path
toewijzing geeft het pad naar hetpyproject.toml
bestand voor Poëzie of naar hetsetup.py
bestand voorsetuptools
. Dit pad is relatief ten opzichte van hetdatabricks.yml
bestand. Ditsetuptools
pad is.
standaard (dezelfde map als hetdatabricks.yml
bestand). - De
build
toewijzing geeft eventuele aangepaste buildopdrachten aan die moeten worden uitgevoerd om het Python-wielbestand te bouwen. Voorsetuptools
, deze opdracht ispython3 setup.py bdist wheel
standaard. - De
files
toewijzing bestaat uit een of meersource
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.
- De
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
ofpoetry --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
ofpython --version
. - Zorg ervoor dat u Databricks CLI versie 0.209.0 of hoger hebt. Voer de opdracht of
databricks --version
de opdrachtdatabricks -v
uit in uw versie van de Databricks CLI. Zie De Databricks CLI installeren of bijwerken.
- 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
Als u
setuptools
de pakketten gebruikt, installeert u dewheel
pakkettensetuptools
als deze nog niet zijn geïnstalleerd door de volgende opdracht uit te voeren:pip3 install --upgrade wheel setuptools
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.
Valideer vanuit de hoofdmap het bundelconfiguratiebestand:
databricks bundle validate
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
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
Kopieer de
Run URL
uitvoer en plak deze in de adresbalk van uw webbrowser.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 setuptools
en 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.