Dela via


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 mappningen sync 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 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 ange repoden lagringsplats där PyPI-paketet finns. Om det inte anges används standardindexet pip (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 librariesen maven mappning för varje Maven-paket som ska installeras. Ange följande för varje mappning:

  • För coordinatesanger 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*