Utveckla en Python-hjulfil med databricks-tillgångspaket
Den här artikeln beskriver hur du skapar, distribuerar och kör en Python-hjulfil som en del av ett Databricks Asset Bundle-projekt . Se Vad är Databricks-tillgångspaket?
Krav
- Databricks CLI version 0.218.0 eller senare. Om du vill kontrollera den installerade versionen av Databricks CLI kör du kommandot
databricks -v
. Information om hur du installerar Databricks CLI finns i Installera eller uppdatera Databricks CLI. - Fjärrarbetsytan måste ha arbetsytefiler aktiverade. Se Vad är arbetsytefiler?.
Beslut: Skapa paketet manuellt eller med hjälp av en mall
Bestäm om du vill skapa ett startpaket med hjälp av en mall eller skapa paketet manuellt. Det går snabbare och enklare att skapa paketet med hjälp av en mall, men paketet kan skapa innehåll som inte behövs och standardinställningarna för paketet måste anpassas ytterligare för verkliga program. När du skapar paketet manuellt får du fullständig kontroll över paketets inställningar, men du måste känna till hur paket fungerar, eftersom du gör allt arbete från början. Välj någon av följande steg:
Skapa paketet med hjälp av en mall
I de här stegen skapar du paketet med azure Databricks-standardpaketmallen för Python. De här stegen hjälper dig att skapa ett paket som består av filer som ska byggas in i en Python-hjulfil och definitionen av ett Azure Databricks-jobb för att skapa den här Python-hjulfilen. Sedan validerar, distribuerar och skapar du de distribuerade filerna i en Python-hjulfil från Python-hjuljobbet på din Azure Databricks-arbetsyta.
Azure Databricks standardpaketmall för Python använder setuptools för att skapa Python-hjulfilen. Om du vill använda Poetry för att skapa Python-hjulfilen i stället följer du anvisningarna senare i det här avsnittet för att byta ut implementeringen setuptools
mot en poesiimplementering i stället.
Steg 1: Konfigurera autentisering
I det här steget konfigurerar du autentisering mellan Databricks CLI på utvecklingsdatorn och Azure Databricks-arbetsytan. Den här artikeln förutsätter att du vill använda U2M-autentisering (OAuth user-to-machine) och en motsvarande Azure Databricks-konfigurationsprofil med namnet DEFAULT
för autentisering.
Kommentar
U2M-autentisering är lämpligt för att prova de här stegen i realtid. För helt automatiserade arbetsflöden rekommenderar Databricks att du använder M2M-autentisering (machine-to-machine) för OAuth i stället. Se installationsinstruktionerna för M2M-autentisering i Autentisering.
Använd Databricks CLI för att initiera OAuth-tokenhantering lokalt genom att köra följande kommando för varje målarbetsyta.
I följande kommando ersätter du
<workspace-url>
med url:en för Azure Databricks per arbetsyta, till exempelhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Databricks CLI uppmanar dig att spara den information som du angav som en Azure Databricks-konfigurationsprofil. Tryck
Enter
för att acceptera det föreslagna profilnamnet eller ange namnet på en ny eller befintlig profil. Alla befintliga profiler med samma namn skrivs över med den information som du angav. Du kan använda profiler för att snabbt växla autentiseringskontext över flera arbetsytor.Om du vill hämta en lista över befintliga profiler i en separat terminal eller kommandotolk använder du Databricks CLI för att köra kommandot
databricks auth profiles
. Om du vill visa en specifik profils befintliga inställningar kör du kommandotdatabricks auth env --profile <profile-name>
.I webbläsaren slutför du anvisningarna på skärmen för att logga in på din Azure Databricks-arbetsyta.
Om du vill visa en profils aktuella OAuth-tokenvärde och tokens kommande förfallotidsstämpel kör du något av följande kommandon:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Om du har flera profiler med samma
--host
värde kan du behöva ange--host
alternativen och-p
tillsammans för att hjälpa Databricks CLI att hitta rätt matchande OAuth-tokeninformation.
Steg 2: Skapa paketet
Ett paket innehåller de artefakter som du vill distribuera och inställningarna för de arbetsflöden som du vill köra.
Använd terminalen eller kommandotolken för att växla till en katalog på den lokala utvecklingsdatorn som innehåller mallens genererade paket.
Använd Databricks CLI-versionen för att köra
bundle init
kommandot:databricks bundle init
För
Template to use
lämnar du standardvärdet fördefault-python
genom att trycka påEnter
.För
Unique name for this project
lämnar du standardvärdetmy_project
, eller skriver ett annat värde och trycker sedan påEnter
. Detta avgör namnet på rotkatalogen för det här paketet. Den här rotkatalogen skapas i den aktuella arbetskatalogen.För
Include a stub (sample) notebook
väljer och trycker duno
påEnter
. Detta instruerar Databricks CLI att inte lägga till en exempelanteckningsbok i ditt paket.För
Include a stub (sample) DLT pipeline
väljer och trycker duno
påEnter
. Detta instruerar Databricks CLI att inte definiera en Delta Live Tables-exempelpipeline i ditt paket.För
Include a stub (sample) Python package
lämnar du standardvärdet föryes
genom att trycka påEnter
. Detta instruerar Databricks CLI att lägga till pythonhjulspaketfiler och relaterade bygginstruktioner i ditt paket.
Steg 3: Utforska paketet
Om du vill visa de filer som mallen genererade växlar du till rotkatalogen för det nyligen skapade paketet och öppnar den här katalogen med önskad IDE, till exempel Visual Studio Code. Filer av särskilt intresse omfattar följande:
databricks.yml
: Den här filen anger paketets programmatiska namn, innehåller en referens till Python-hjuljobbdefinitionen och anger inställningar för målarbetsytan.resources/<project-name>_job.yml
: Den här filen anger inställningarna för Python-hjuljobbet.src/<project-name>
: Den här katalogen innehåller de filer som Python-hjuljobbet använder för att skapa Python-hjulfilen.
Kommentar
Om du vill installera Python-hjulfilen på ett målkluster som har Databricks Runtime 12.2 LTS eller senare installerat måste du lägga till följande mappning på den översta nivån i databricks.yml
filen:
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
Den här mappningen instruerar Databricks CLI att göra följande:
- Distribuera en kopia av Python-hjulfilen i bakgrunden. Den här distributionssökvägen är vanligtvis
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Skapa en notebook-fil i bakgrunden som innehåller instruktioner för att installera den tidigare distribuerade Python-hjulfilen i målklustret. Den här notebook-filens sökväg är vanligtvis
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
. - När du kör ett jobb som innehåller en Python-hjulaktivitet och uppgifterna refererar till föregående Python-hjulfil skapas ett jobb i bakgrunden som kör den föregående notebook-filen.
Du behöver inte ange den här mappningen för målkluster med Databricks Runtime 13.1 eller senare installerat, eftersom Python-hjulinstallationer från Azure Databricks-arbetsytans filsystem installeras automatiskt på dessa målkluster.
Steg 4: Uppdatera projektets paket för att använda Poesi
Som standard anger paketmallen att du skapar Python-hjulfilen tillsammans setuptools
med filerna setup.py
och requirements-dev.txt
. Om du vill behålla dessa standardvärden går du vidare till Steg 5: Verifiera projektets paketkonfigurationsfil.
Om du vill uppdatera projektets paket så att det använder Poesi i stället för setuptools
kontrollerar du att din lokala utvecklingsdator uppfyller följande krav:
- Poesi version 1.6 eller senare. Om du vill kontrollera den installerade versionen av Poetry kör du kommandot
poetry -V
ellerpoetry --version
. Information om hur du installerar eller uppgraderar Poesi finns i Installation. - Python version 3.10 eller senare. Om du vill kontrollera din version av Python kör du kommandot
python -V
ellerpython --version
. - Databricks CLI version 0.209.0 eller senare. Kör kommandot
databricks -v
ellerdatabricks --version
till din version av Databricks CLI. Se Installera eller uppdatera Databricks CLI.
Gör följande ändringar i projektets paket:
Från paketets rotkatalog instruerar du
poetry
att initiera Python-hjulbyggen för Poetry genom att köra följande kommando:poetry init
Poesi visar flera uppmaningar som du kan slutföra. För Python-hjulbyggen svarar du på följande frågor för att matcha de relaterade standardinställningarna i projektets paket:
- För
Package name
skriver du namnet på den underordnade mappen under/src
och trycker sedan påEnter
. Detta bör också vara paketetsname
värde som definieras i paketetssetup.py
fil. - För
Version
skriver0.0.1
och trycker du påEnter
. Detta matchar versionsnumret som definieras i paketetssrc/<project-name>/__init__.py
fil. - För
Description
skriverwheel file based on <project-name>/src
du (ersätter<project-name>
med projektets namn) och trycker påEnter
. Detta matchar detdescription
värde som definieras i mallenssetup.py
fil. - Tryck på
Enter
förAuthor
. Det här standardvärdet matchar författaren som definieras i mallenssetup.py
fil. - Tryck på
Enter
förLicense
. Det finns ingen licens definierad i mallen. - För
Compatible Python versions
anger du den Python-version som matchar den i dina Azure Databricks-målkluster (till exempel^3.10
) och trycker påEnter
. - För
Would you like to define your main dependencies interactively?
Typno
och tryck påEnter
. Du kommer att definiera dina beroenden senare. - För
Would you like to define your development dependencies interactively?
Typno
och tryck påEnter
. Du kommer att definiera dina beroenden senare. - För
Do you confirm generation?
Tryck påEnter
.
- För
När du har slutfört anvisningarna lägger Poetry till en
pyproject.toml
fil i paketets projekt. Information om filen finns ipyproject.toml
filen pyproject.toml.Från paketets rotkatalog instruerar du
poetry
att läsapyproject.toml
filen, lösa beroendena och installera dem, skapa enpoetry.lock
fil för att låsa beroendena och slutligen skapa en virtuell miljö. Gör detta genom att köra följande kommando:poetry install
Lägg till följande avsnitt i slutet av
pyproject.toml
filen och ersätt<project-name>
med namnet på katalogen som innehållersrc/<project-name>/main.py
filen (till exempelmy_project
):[tool.poetry.scripts] main = "<project-name>.main:main"
Avsnittet anger Python-hjulets startpunkt för Python-hjuljobbet.
Lägg till följande mappning på den översta nivån i paketets
databricks.yml
fil:artifacts: default: type: whl build: poetry build path: .
Den här mappningen instruerar Databricks CLI att använda Poetry för att skapa en Python-hjulfil.
setup.py
Ta bort filerna ochrequirements-dev.txt
från paketet eftersom Poesi inte behöver dem.
Steg 5: Verifiera projektets paketkonfigurationsfil
I det här steget kontrollerar du om paketkonfigurationen är giltig.
Från rotkatalogen använder du Databricks CLI för att köra
bundle validate
kommandot enligt följande:databricks bundle validate
Om en sammanfattning av paketkonfigurationen returneras lyckades verifieringen. Om några fel returneras åtgärdar du felen och upprepar sedan det här steget.
Om du gör några ändringar i paketet efter det här steget bör du upprepa det här steget för att kontrollera om paketkonfigurationen fortfarande är giltig.
Steg 6: Skapa Python-hjulfilen och distribuera det lokala projektet till fjärrarbetsytan
I det här steget skapar du Python-hjulfilen, distribuerar den byggda Python-hjulfilen till din fjärranslutna Azure Databricks-arbetsyta och skapar Azure Databricks-jobbet på din arbetsyta.
Om du använder
setuptools
installerar du paketenwheel
ochsetuptools
om du inte redan har gjort det genom att köra följande kommando:pip3 install --upgrade wheel setuptools
I Visual Studio Code-terminalen använder du Databricks CLI för att köra
bundle deploy
kommandot på följande sätt:databricks bundle deploy -t dev
Om du vill kontrollera om den lokalt byggda Python-hjulfilen har distribuerats:
- Klicka på Arbetsyta i sidofältet på azure Databricks-arbetsytan.
- Klicka i följande mapp: Workspace > Users
<your-username>
>> .bundle ><project-name>
> dev > artifacts > .internal .><random-guid>
Python-hjulfilen ska finnas i den här mappen.
Om du vill kontrollera om jobbet har skapats:
- I sidofältet för Azure Databricks-arbetsytan klickar du på Arbetsflöden.
- På fliken Jobb klickar du på [dev
<your-username>
]<project-name>
_job. - Klicka på fliken Uppgifter .
Det bör finnas en uppgift: main_task.
Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 5–6 för att kontrollera om paketkonfigurationen fortfarande är giltig och sedan distribuera om projektet.
Steg 7: Kör det distribuerade projektet
I det här steget kör du Azure Databricks-jobbet på din arbetsyta.
Från rotkatalogen använder du Databricks CLI för att köra
bundle run
kommandot enligt följande och ersätter<project-name>
med namnet på projektet från steg 2:databricks bundle run -t dev <project-name>_job
Kopiera värdet
Run URL
för som visas i terminalen och klistra in det här värdet i webbläsaren för att öppna Azure Databricks-arbetsytan.När uppgiften har slutförts och visar ett grönt namnfält i Din Azure Databricks-arbetsyta klickar du på main_task uppgift för att se resultatet.
Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 5–7 för att kontrollera om paketkonfigurationen fortfarande är giltig, distribuera om projektet och köra det omdistribuerade projektet.
Du har nått slutet av stegen för att skapa ett paket med hjälp av en mall.
Skapa paketet manuellt
I de här stegen skapar du paketet från början för hand. De här stegen hjälper dig att skapa ett paket som består av filer som ska byggas in i en Python-hjulfil och definitionen av ett Databricks-jobb för att skapa den här Python-hjulfilen. Sedan validerar, distribuerar och skapar du de distribuerade filerna i en Python-hjulfil från Python-hjuljobbet på din Databricks-arbetsyta.
De här stegen omfattar att lägga till innehåll i en YAML-fil. Du kan också använda en integrerad utvecklingsmiljö (IDE) som ger automatiska schemaförslag och åtgärder när du arbetar med YAML-filer. Följande steg använder Visual Studio Code med YAML-tillägget installerat från Visual Studio Code Marketplace.
De här stegen förutsätter att du redan vet:
- Skapa, skapa och arbeta med Python-hjulfiler med Poetry eller
setuptools
. Information om poesi finns i Grundläggande användning. Mersetuptools
information finns i användarhandboken för Python-paketering. - Så här använder du Python-hjulfiler som en del av ett Azure Databricks-jobb. Se Använda en Python-hjulfil i ett Azure Databricks-jobb.
Följ dessa instruktioner för att skapa ett exempelpaket som skapar en Python-hjulfil med Poetry eller setuptools
, distribuerar Python-hjulfilen och kör sedan den distribuerade Python-hjulfilen.
Om du redan har skapat en Python-hjulfil och bara vill distribuera och köra den går du vidare till att ange Python-hjulinställningarna i paketkonfigurationsfilen i steg 3: Skapa paketets konfigurationsfil.
Steg 1: Konfigurera autentisering
I det här steget konfigurerar du autentisering mellan Databricks CLI på utvecklingsdatorn och Azure Databricks-arbetsytan. Den här artikeln förutsätter att du vill använda U2M-autentisering (OAuth user-to-machine) och en motsvarande Azure Databricks-konfigurationsprofil med namnet DEFAULT
för autentisering.
Kommentar
U2M-autentisering är lämpligt för att prova de här stegen i realtid. För helt automatiserade arbetsflöden rekommenderar Databricks att du använder M2M-autentisering (machine-to-machine) för OAuth i stället. Se installationsinstruktionerna för M2M-autentisering i Autentisering.
Använd Databricks CLI för att initiera OAuth-tokenhantering lokalt genom att köra följande kommando för varje målarbetsyta.
I följande kommando ersätter du
<workspace-url>
med url:en för Azure Databricks per arbetsyta, till exempelhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Databricks CLI uppmanar dig att spara den information som du angav som en Azure Databricks-konfigurationsprofil. Tryck
Enter
för att acceptera det föreslagna profilnamnet eller ange namnet på en ny eller befintlig profil. Alla befintliga profiler med samma namn skrivs över med den information som du angav. Du kan använda profiler för att snabbt växla autentiseringskontext över flera arbetsytor.Om du vill hämta en lista över befintliga profiler i en separat terminal eller kommandotolk använder du Databricks CLI för att köra kommandot
databricks auth profiles
. Om du vill visa en specifik profils befintliga inställningar kör du kommandotdatabricks auth env --profile <profile-name>
.I webbläsaren slutför du anvisningarna på skärmen för att logga in på din Azure Databricks-arbetsyta.
Om du vill visa en profils aktuella OAuth-tokenvärde och tokens kommande förfallotidsstämpel kör du något av följande kommandon:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Om du har flera profiler med samma
--host
värde kan du behöva ange--host
alternativen och-p
tillsammans för att hjälpa Databricks CLI att hitta rätt matchande OAuth-tokeninformation.
Steg 2: Skapa paketet
Ett paket innehåller de artefakter som du vill distribuera och inställningarna för de arbetsflöden som du vill köra.
Skapa följande mappar och filer i paketets rot beroende på om du använder Poesi eller
setuptools
för att skapa Python-hjulfiler:Poesi
├── 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
__init__.py
Lämna filen tom.Lägg till följande kod i
main.py
filen och spara sedan filen: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()
Lägg till följande kod i
my_module.py
filen och spara sedan filen: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
Lägg till följande kod i
pyproject.toml
filen ellersetup.py
och spara sedan filen: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"
- Ersätt
my-author-name
med organisationens primära kontaktnamn. - Ersätt
my-author-name>@<my-organization
med organisationens primära e-postadress. - Ersätt
<my-package-description>
med en visningsbeskrivning för Python-hjulfilen.
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" ] )
- Ersätt
https://<my-url>
med organisationens URL. - Ersätt
<my-author-name>
med organisationens primära kontaktnamn. - Ersätt
<my-author-name>@<my-organization>
med organisationens primära e-postadress. - Ersätt
<my-package-description>
med en visningsbeskrivning för Python-hjulfilen.
- Ersätt
Steg 3: Skapa paketets konfigurationsfil
En paketkonfigurationsfil beskriver de artefakter som du vill distribuera och de arbetsflöden som du vill köra.
Lägg till en paketkonfigurationsfil med namnet
databricks.yml
i paketets rot. Lägg till följande kod i den här filen:Poesi
Kommentar
Om du redan har skapat en Python-hjulfil och bara vill distribuera den ändrar du följande paketkonfigurationsfil genom att utelämna mappningen
artifacts
. Databricks CLI förutsätter sedan att Python-hjulfilen redan har skapats och distribuerar automatiskt de filer som anges i matrisenslibraries
whl
poster.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>
Ersätt
<workspace-url>
med url:en per arbetsyta, till exempelhttps://adb-1234567890123456.7.azuredatabricks.net
.Mappningen
artifacts
krävs för att skapa Python-hjulfiler med Poetry och är valfritt för att skapa Python-hjulfiler medsetuptools
. Mappningenartifacts
innehåller en eller flera artefaktdefinitioner med följande mappningar:- Mappningen
type
måste finnas och anges tillwhl
för att ange att en Python-hjulfil ska skapas.whl
Försetuptools
är standardvärdet om inga artefaktdefinitioner har angetts. - Mappningen
path
anger sökvägen tillpyproject.toml
filen för Poesi eller tillsetup.py
filen försetuptools
. Den här sökvägen är relativ tilldatabricks.yml
filen. Försetuptools
är.
den här sökvägen (samma katalog som filen) somdatabricks.yml
standard. - Mappningen
build
anger alla anpassade byggkommandon som ska köras för att skapa Python-hjulfilen. Försetuptools
ärpython3 setup.py bdist wheel
det här kommandot som standard. - Mappningen
files
består av en eller flerasource
mappningar som anger eventuella ytterligare filer som ska inkluderas i Python-hjulversionen. Det finns inget standardvärde.
Kommentar
Om du vill installera Python-hjulfilen på ett målkluster som har Databricks Runtime 12.2 LTS eller senare installerat måste du lägga till följande mappning på den översta nivån i
databricks.yml
filen:# Applies to jobs with python_wheel_task and that use # clusters with Databricks Runtime 13.0 or below installed. experimental: python_wheel_wrapper: true
Den här mappningen instruerar Databricks CLI att göra följande:
- Distribuerar en kopia av Python-hjulfilen i bakgrunden. Den här distributionssökvägen är vanligtvis
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Skapar en notebook-fil i bakgrunden som innehåller instruktioner för att installera den tidigare distribuerade Python-hjulfilen i målklustret. Den här notebook-filens sökväg är vanligtvis
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
. - När du kör ett jobb som innehåller en Python-hjulaktivitet och den uppgiften refererar till föregående Python-hjulfil skapas ett jobb i bakgrunden som kör den föregående notebook-filen.
Du behöver inte ange den här mappningen för målkluster med Databricks Runtime 13.1 eller senare installerat, eftersom Python-hjulinstallationer från Azure Databricks-arbetsytans filsystem installeras automatiskt på dessa målkluster.
- Mappningen
Om du använder Poesi gör du följande:
- Installera Poetry, version 1.6 eller senare, om det inte redan är installerat. Om du vill kontrollera den installerade versionen av Poetry kör du kommandot
poetry -V
ellerpoetry --version
. - Kontrollera att python version 3.10 eller senare är installerad. Om du vill kontrollera din version av Python kör du kommandot
python -V
ellerpython --version
. - Kontrollera att du har Databricks CLI version 0.209.0 eller senare. Kör kommandot
databricks -v
ellerdatabricks --version
till din version av Databricks CLI. Se Installera eller uppdatera Databricks CLI.
- Installera Poetry, version 1.6 eller senare, om det inte redan är installerat. Om du vill kontrollera den installerade versionen av Poetry kör du kommandot
Om du använder
setuptools
installerar du paketenwheel
ochsetuptools
om de inte redan är installerade genom att köra följande kommando:pip3 install --upgrade wheel setuptools
Om du tänker lagra det här paketet med en Git-provider lägger du till en
.gitignore
fil i projektets rot och lägger till följande poster i den här filen:Poesi
.databricks dist
Setuptools
.databricks build dist src/my_package/my_package.egg-info
Steg 4: Verifiera projektets paketkonfigurationsfil
I det här steget kontrollerar du om paketkonfigurationen är giltig.
Verifiera paketkonfigurationsfilen från rotkatalogen:
databricks bundle validate
Om en sammanfattning av paketkonfigurationen returneras lyckades verifieringen. Om några fel returneras åtgärdar du felen och upprepar sedan det här steget.
Om du gör några ändringar i paketet efter det här steget bör du upprepa det här steget för att kontrollera om paketkonfigurationen fortfarande är giltig.
Steg 5: Skapa Python-hjulfilen och distribuera det lokala projektet till fjärrarbetsytan
Skapa Python-hjulfilen lokalt, distribuera den byggda Python-hjulfilen till din arbetsyta, distribuera anteckningsboken till din arbetsyta och skapa jobbet på din arbetsyta:
databricks bundle deploy -t dev
Steg 6: Kör det distribuerade projektet
Kör det distribuerade jobbet, som använder den distribuerade notebook-filen för att anropa den distribuerade Python-hjulfilen:
databricks bundle run -t dev wheel-job
I utdata kopierar
Run URL
du och klistrar in den i webbläsarens adressfält.På jobbkörningens utdatasida visas följande resultat:
200 + 400 = 600 400 - 200 = 200 200 * 400 = 80000 400 / 200 = 2.0
Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 3–5 för att kontrollera om paketkonfigurationen fortfarande är giltig, distribuera om projektet och köra det omdistribuerade projektet.
Skapa och installera en Python-hjulfil för ett jobb
Om du vill skapa en Python-hjulfil med Poetry eller setuptools
och sedan använda python-hjulfilen i ett jobb måste du lägga till en eller två mappningar i databricks.yml
filen.
Om du använder Poesi måste du inkludera följande artifacts
mappning i databricks.yml
filen. Den här mappningen kör poetry build
kommandot och använder pyproject.toml
filen som finns i samma katalog som databricks.yml
filen:
artifacts:
default:
type: whl
build: poetry build
path: .
Kommentar
Mappningen artifacts
är valfri för setuptools
. För Databricks CLI kör som standard setuptools
kommandot och använder setup.py
filen som finns i samma katalog som databricks.yml
python3 setup.py bdist_wheel
filen. Databricks CLI förutsätter att du redan har kört ett kommando, till exempel pip3 install --upgrade wheel setuptools
för att installera paketen wheel
och setuptools
om de inte redan är installerade.
Jobbuppgiftens libraries
mappning måste också innehålla ett whl
värde som anger sökvägen till den byggda Python-hjulfilen i förhållande till konfigurationsfilen där den deklareras. I följande exempel visas detta i en notebook-uppgift (ellipsen indikerar utelämnat innehåll för korthet):
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:
# ...
Skapa och installera en Python-hjulfil för en pipeline
Om du vill skapa en Python-hjulfil med Poetry eller setuptools
och sedan referera till Python-hjulfilen i en Delta Live Tables-pipeline måste du lägga till en mappning i databricks.yml
filen om du använder Poesi och du måste lägga till ett %pip install
kommando i pipeline notebook-filen på följande sätt.
Om du använder Poesi måste du inkludera följande artifacts
mappning i databricks.yml
filen. Den här mappningen kör poetry build
kommandot och använder pyproject.toml
filen som finns i samma katalog som databricks.yml
filen:
artifacts:
default:
type: whl
build: poetry build
path: .
Kommentar
Mappningen artifacts
är valfri för setuptools
. För Databricks CLI kör som standard setuptools
kommandot och använder setup.py
filen som finns i samma katalog som databricks.yml
python3 setup.py bdist_wheel
filen. Databricks CLI förutsätter att du redan har kört ett kommando, till exempel pip3 install --upgrade wheel setuptools
för att installera paketen wheel
och setuptools
om de inte redan är installerade.
Dessutom måste den relaterade pipelineanteckningsboken innehålla ett %pip install
kommando för att installera Python-hjulfilen som skapas. Se Python-bibliotek.