Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
På den här sidan beskrivs syntaxen för att deklarera biblioteksberoenden för deklarativa automatiseringspaket. Paket möjliggör programmatisk hantering av Databricks-resurser. Se även Vad är deklarativa automatiseringspaket?.
Förutom anteckningsböcker och källfiler, kommer dina jobb, pipelines och andra arbetslaster sannolikt att bero på bibliotek. Biblioteksberoenden deklareras i paketkonfigurationsfilerna.
Paket ger stöd för följande biblioteksberoenden:
- Python hjulfil
- JAR-fil (Java eller Scala)
- PyPI-, Maven- eller CRAN-paket
För Python kan du också ange beroenden i en pyproject.toml-fil och inkludera den i ditt paket. Se uv och pyproject.toml.
Anteckning
Om ett bibliotek stöds beror på klusterkonfigurationen och bibliotekskällan. Fullständig information om biblioteksstöd finns i Installera bibliotek.
Python hjulfil
Om du vill lägga till en Python hjulfil i en jobbaktivitet i libraries anger du en whl mappning för varje bibliotek som ska installeras. Du kan installera en hjulfil från arbetsytefiler, Unity Catalog-volymer, molnobjektlagring eller en lokal filsökväg.
Viktigt!
Bibliotek kan installeras från DBFS när du använder Databricks Runtime 14.3 LTS och nedan. Alla arbetsyteanvändare kan dock ändra biblioteksfiler som lagras i DBFS. För att förbättra säkerheten för bibliotek på en Azure Databricks arbetsyta är lagring av biblioteksfiler i DBFS-roten inaktuell och inaktiverad som standard i Databricks Runtime 15.1 och senare. Se Lagra bibliotek i DBFS-roten är föråldrad och inaktiverad som standard.
Databricks föreslår att ladda upp alla bibliotek, inklusive Python-bibliotek, JAR-filer och Spark-kopplingar, till arbetsytefiler eller Unity Catalog-volymer eller genom att använda bibliotekspaketsdatabaser. Om din arbetsbelastning inte stöder dessa mönster kan du även använda bibliotek som lagras i molnobjektlagring.
I följande exempel visas hur du installerar tre Python hjulfiler för en jobbaktivitet.
- Den första Python hjulfilen överfördes antingen tidigare till Azure Databricks-arbetsytan eller lades till som ett
includeobjekt isyncmappning och finns i samma lokala mapp som paketkonfigurationsfilen. - Den andra Python hjulfilen finns på den angivna arbetsytans filplats i Azure Databricks arbetsytan.
- Den tredje Python hjulfilen laddades tidigare upp till volymen med namnet
my-volumepå Azure Databricks arbetsytan.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- whl: ./my-wheel-0.1.0.whl
- whl: /Workspace/Shared/Libraries/my-wheel-0.0.1-py3-none-any.whl
- whl: /Volumes/main/default/my-volume/my-wheel-0.1.0.whl
JAR-fil (Java eller Scala)
För att lägga till en JAR-fil i ett jobb, ange en librariesjar mappning för varje bibliotek som ska installeras. Du kan installera en JAR från Unity Catalog-volymer, molnobjektlagring eller en lokal filsökväg.
Viktigt!
Bibliotek kan installeras från DBFS när du använder Databricks Runtime 14.3 LTS och nedan. Alla arbetsyteanvändare kan dock ändra biblioteksfiler som lagras i DBFS. För att förbättra säkerheten för bibliotek på en Azure Databricks arbetsyta är lagring av biblioteksfiler i DBFS-roten inaktuell och inaktiverad som standard i Databricks Runtime 15.1 och senare. Se Lagra bibliotek i DBFS-roten är föråldrad och inaktiverad som standard.
Databricks föreslår att ladda upp alla bibliotek, inklusive Python-bibliotek, JAR-filer och Spark-kopplingar, till arbetsytefiler eller Unity Catalog-volymer eller genom att använda bibliotekspaketsdatabaser. Om din arbetsbelastning inte stöder dessa mönster kan du även använda bibliotek som lagras i molnobjektlagring.
I följande exempel visas hur du installerar en JAR-fil som tidigare laddades upp till volymen med namnet my-volume på Azure Databricks-arbetsytan.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Exempel på konfiguration som skapar och distribuerar JAR-filen finns i Paket som laddar upp en JAR-fil till Unity Catalog. En självstudiekurs som skapar ett paketprojekt som skapar och distribuerar en Scala JAR finns i Skapa en Scala JAR med deklarativa automationspaket.
PyPI-paket
Om du vill lägga till ett PyPI-paket i en jobbaktivitetsdefinition anger du i librariesen pypi mappning för varje PyPI-paket som ska installeras. Ange följande för varje mappning:
- För
packageanger du namnet på PyPI-paketet som ska installeras. En valfri exakt versionsspecifikation stöds också. - Om du vill kan du för
repoange den lagringsplats där PyPI-paketet finns. Om det inte anges används standardindexetpip(https://pypi.org/simple/).
I följande exempel visas hur du installerar två PyPI-paket.
- Det första PyPI-paketet använder den angivna paketversionen och standardindexet
pip. - Det andra PyPI-paketet använder den angivna paketversionen och det uttryckligen angivna
pipindexet.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- pypi:
package: wheel==0.41.2
- pypi:
package: numpy==1.25.2
repo: https://pypi.org/simple/
Maven-paket
Om du vill lägga till ett Maven-paket i en jobbaktivitetsdefinition anger du i librariesen maven mappning för varje Maven-paket som ska installeras. Ange följande för varje mappning:
- För
coordinatesspecificeras Maven-koordinater i Gradle-stil för paketet. - Du kan också ange maven-lagringsplatsen för att installera Maven-paketet från för
repo. Om det utelämnas genomsöks både Maven Central-lagringsplatsen och Spark Packages-lagringsplatsen. - Du kan också ange eventuella beroenden som uttryckligen ska undantas för för
exclusions. Se även Maven-beroendeuteslutningar.
I följande exempel visas hur du installerar två Maven-paket.
- Det första Maven-paketet använder de angivna paketkoordinaterna och söker efter det här paketet i både Maven Central-lagringsplatsen och Spark Packages-lagringsplatsen.
- Det andra Maven-paketet använder de angivna paketkoordinaterna, söker bara efter det här paketet i mavens centrala lagringsplats och inkluderar inte något av det här paketets beroenden som matchar det angivna mönstret.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- maven:
coordinates: com.databricks:databricks-sdk-java:0.8.1
- maven:
coordinates: com.databricks:databricks-dbutils-scala_2.13:0.1.4
repo: https://mvnrepository.com/
exclusions:
- org.scala-lang:scala-library:2.13.0-RC*
Python requirements.txt
Anteckning
uv är den rekommenderade metoden för att hantera Python biblioteksberoenden. Se uv och pyproject.toml.
Python biblioteksberoenden kan också anges i en requirements*.txt fil som ingår som en del av jobbaktivitetsdefinitionen. Sökvägen till filen kan vara en lokal sökväg, en arbetsytesökväg eller en volymsökväg för Unity Catalog.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt
uv och pyproject.toml
Om du vill inkludera Python biblioteksberoenden med hjälp av uv anger du dem i filen pyproject.toml som ingår i paketet och definierar sedan ett miljöberoende för att inkludera dem. Mer information om uvfinns i Introduktion till uv.
Till exempel lägger följande pyproject.toml fil till numpy som ett beroende:
[project]
name = "test"
version = "0.0.1"
authors = [{ name = "someone@example.com" }]
requires-python = ">=3.10,<3.13"
dependencies = [
# Any dependencies for jobs and pipelines in this project can be added here
#
# LIMITATION: for pipelines, dependencies are cached during development;
# add dependencies to the 'environment' section of your pipeline.yml file instead
"numpy==1.25.2"
]
[dependency-groups]
dev = [
"pytest",
"ruff",
"databricks-dlt",
"databricks-connect>=15.4,<15.5",
"ipykernel",
]
[project.scripts]
main = "test.main:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.ruff]
line-length = 120
Redigera nu din paketresurskonfiguration så att den inkluderar alla beroenden som definieras i pyproject.toml genom att lägga till en redigerbar miljö som pekar på mappen där pyproject.toml den distribueras, till exempel i det här exemplet på pipelinekonfiguration:
resources:
pipelines:
test_uv_etl:
name: test_uv_etl
catalog: ${var.catalog}
schema: ${var.schema}
serverless: true
root_path: '../src/test_uv_etl'
libraries:
- glob:
include: ../src/test_uv_etl/transformations/**
environment:
dependencies:
- --editable ${workspace.file_path}
Så här skapar du samlingsartefakter med hjälp av uv:
# databricks.yml
...
artifacts:
python_artifact:
type: whl
build: uv build --wheel
...