Biblioteksberoenden för Databricks-tillgångspaket
I den här artikeln beskrivs syntaxen för att deklarera beroenden för Databricks-tillgångspaketbibliotek. Paket möjliggör programmatisk hantering av Azure Databricks-arbetsflöden. Se Vad är Databricks-tillgångspaket?.
Utöver notebook-filer kommer dina Azure Databricks-jobb troligen att vara beroende av bibliotek för att fungera som förväntat. Beroenden för databricks-tillgångspaket för lokal utveckling anges i filen i requirements*.txt
roten av paketprojektet, men beroenden för jobbaktivitetsbibliotek deklareras i paketkonfigurationsfilerna och är ofta nödvändiga som en del av specifikationen för jobbaktivitetstypen.
Paket ger stöd för följande biblioteksberoenden för Azure Databricks-jobb:
- Python-hjulfil
- JAR-fil (Java eller Scala)
- PyPI-, Maven- eller CRAN-paket
Kommentar
Om ett bibliotek stöds eller inte beror på klusterkonfigurationen för jobbet och bibliotekskällan. Fullständig information om biblioteksstöd finns i Bibliotek.
Python-hjulfil
Om du vill lägga till en Python-hjulfil i en jobbuppgift anger libraries
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 inaktuell och inaktiverad som standard.
I stället rekommenderar Databricks att du laddar upp alla bibliotek, inklusive Python-bibliotek, JAR-filer och Spark-anslutningsappar, till arbetsytefiler eller Unity Catalog-volymer eller använder bibliotekspaketdatabaser. 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 laddades antingen upp tidigare till Azure Databricks-arbetsytan eller lades till som ett
include
objekt i mappningensync
och finns i samma lokala mapp som paketkonfigurationsfilen. - Den andra Python-hjulfilen finns på den angivna platsen för arbetsytefiler på Azure Databricks-arbetsytan.
- Den tredje Python-hjulfilen laddades tidigare upp till volymen med namnet
my-volume
på 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
Om du vill lägga till en JAR-fil i en jobbaktivitet anger libraries
du en jar
mappning för varje bibliotek som ska installeras. Du kan installera en JAR 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 inaktuell och inaktiverad som standard.
I stället rekommenderar Databricks att du laddar upp alla bibliotek, inklusive Python-bibliotek, JAR-filer och Spark-anslutningsappar, till arbetsytefiler eller Unity Catalog-volymer eller använder bibliotekspaketdatabaser. 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
PyPI-paket
Om du vill lägga till ett PyPI-paket i en jobbaktivitetsdefinition anger du i libraries
en pypi
mappning för varje PyPI-paket som ska installeras. Ange följande för varje mappning:
- För
package
anger du namnet på PyPI-paketet som ska installeras. En valfri exakt versionsspecifikation stöds också. - Om du vill kan du ange
repo
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
pip
indexet.
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 libraries
en maven
mappning för varje Maven-paket som ska installeras. Ange följande för varje mappning:
- För
coordinates
anger du Maven-koordinaterna 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 Maven-beroendeundantag.
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*