Dela via


Bibliotek

Om du vill göra egen kod eller kod från tredje part tillgänglig för notebooks och jobb som körs i dina kluster kan du installera ett bibliotek. Bibliotek kan skrivas i Python, Java, Scala och R. Du kan ladda upp Python-, Java- och Scala-bibliotek och peka på externa paket i PyPI-, Maven- och CRAN-lagringsplatser.

Azure Databricks innehåller många vanliga bibliotek i Databricks Runtime. Information om vilka bibliotek som ingår i Databricks Runtime finns i avsnittet System Environment (Systemmiljö) i viktig information om Databricks Runtime för din Databricks Runtime-version.

Kommentar

Microsoft Support hjälper till att isolera och lösa problem som rör bibliotek som har installerats och underhålls av Azure Databricks. För komponenter från tredje part, till exempel bibliotek, tillhandahåller Microsoft kommersiellt rimlig support för att hjälpa dig med ytterligare felsökning av problem. Microsoft Support hjälper dig efter bästa förmåga och kanske kan hjälpa dig att lösa problemet. För anslutningsappar med öppen källkod och projekt som finns på GitHub rekommenderar vi att du rapporterar problem på GitHub och följer upp dem. Utvecklingsarbete som skuggor i Jar-filer eller skapande av Python-bibliotek stöds inte via den vanliga insändningsprocessen för supportärenden: de kräver engagemang från en konsult för snabbare lösning. Supporten kan be dig att kontakta andra kanaler för teknik som bygger på öppen källkod där du kan hitta expertis inom just den tekniken. Det finns flera webbforum. Två exempel är Microsoft sidan för vanliga frågor & svar för Azure Databricks och Stack Overflow.

Bibliotek med klusteromfattning

Du kan installera bibliotek på kluster så att de kan användas av alla notebook-filer och jobb som körs i klustret. Databricks stöder Python-, JAR- och R-bibliotek. Se Klusterbibliotek.

Du kan installera ett klusterbibliotek direkt från följande källor:

Alla platser stöds inte för alla typer av bibliotek eller alla beräkningskonfigurationer. Se Rekommendationer för att ladda upp bibliotek för konfigurationsrekommendationer.

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.

Fullständig information om biblioteksstöd finns i Stöd för Python-bibliotek, stöd för Java- och Scala-bibliotek och stöd för R-bibliotek.

Rekommendationer för att ladda upp bibliotek

Databricks stöder de flesta konfigurationsinstallationer av Python-, JAR- och R-bibliotek, men det finns några scenarier som inte stöds. Vi rekommenderar att du laddar upp bibliotek till källplatser som stöder installation till beräkning med läget för delad åtkomst, eftersom detta är det rekommenderade läget för alla arbetsbelastningar. Se Åtkomstlägen. När du schemalägger jobb med läget för delad åtkomst kör du jobbet med tjänstens huvudnamn.

Viktigt!

Använd endast beräkning med åtkomstläge för en användare om nödvändiga funktioner inte stöds av läget för delad åtkomst. Inget läge för delad åtkomst för isolering är en äldre konfiguration på Databricks som inte rekommenderas.

Följande tabell innehåller rekommendationer ordnade efter Databricks Runtime-version och Unity Catalog-aktivering.

Konfiguration Rekommendation
Databricks Runtime 13.3 LTS och senare med Unity Catalog Installera bibliotek på beräkning med läget för delad åtkomst från Unity Catalog-volymer med GRANT READ för alla kontoanvändare.

Om tillämpligt måste Maven-koordinater och JAR-bibliotekssökvägar läggas till i listan över tillåtna.
Databricks Runtime 11.3 LTS och senare utan Unity Catalog Installera bibliotek från arbetsytefiler. (Filstorleksgränsen är 500 MB.)
Databricks Runtime 10.4 LTS och nedan Installera bibliotek från molnobjektlagring.

Stöd för Python-bibliotek

Följande tabell anger kompatibiliteten för Databricks Runtime-versionen för Python-hjulfiler för olika klusteråtkomstlägen baserat på bibliotekets källplats. Se Viktig information om versioner av Databricks Runtime och kompatibilitets - och åtkomstlägen.

I Databricks Runtime 15.0 och senare kan du använda requirements.txt filer för att hantera dina Python-beroenden. Dessa filer kan laddas upp till valfri källplats som stöds.

Kommentar

Installation av Python-äggfiler stöds inte med Databricks Runtime 14.0 och senare. Använd Python-hjulfiler eller installera paket från PyPI i stället.

Läge för delad åtkomst Åtkomstläge för en användare Inget isoleringsläge för delad åtkomst (äldre)
PyPI 13.3 LTS och senare Alla Databricks Runtime-versioner som stöds Alla Databricks Runtime-versioner som stöds
Arbetsytefiler 13.3 LTS och senare 13.3 LTS och senare 14.1 och senare
Volymer 13.3 LTS och senare 13.3 LTS och senare Stöds inte
Molnlagring 13.3 LTS och senare Alla Databricks Runtime-versioner som stöds Alla Databricks Runtime-versioner som stöds
DBFS (rekommenderas inte) Stöds inte 14.3 och lägre 14.3 och lägre

Stöd för Java- och Scala-bibliotek

Följande tabell anger kompatibiliteten för Databricks Runtime-version för JAR-filer för olika klusteråtkomstlägen baserat på bibliotekets källplats. Se Viktig information om versioner av Databricks Runtime och kompatibilitets - och åtkomstlägen.

Kommentar

Läget för delad åtkomst kräver att en administratör lägger till Maven-koordinater och sökvägar för JAR-bibliotek i en allowlist. Se Tillåtlista bibliotek och init-skript för delad beräkning.

Läge för delad åtkomst Åtkomstläge för en användare Inget isoleringsläge för delad åtkomst (äldre)
Maven 13.3 LTS och senare Alla Databricks Runtime-versioner som stöds Alla Databricks Runtime-versioner som stöds
Arbetsytefiler Stöds inte Stöds inte 14.1 och senare
Volymer 13.3 LTS och senare 13.3 LTS och senare Stöds inte
Molnlagring 13.3 LTS och senare Alla Databricks Runtime-versioner som stöds Alla Databricks Runtime-versioner som stöds
DBFS (rekommenderas inte) Stöds inte 14.3 och lägre 14.3 och lägre

Stöd för R-bibliotek

Följande tabell anger Databricks Runtime-versionskompatibilitet för CRAN-paket för olika klusteråtkomstlägen. Se Viktig information om versioner av Databricks Runtime och kompatibilitets - och åtkomstlägen.

Läge för delad åtkomst Åtkomstläge för en användare Inget isoleringsläge för delad åtkomst (äldre)
CRAN Stöds inte Alla Databricks Runtime-versioner som stöds Alla Databricks Runtime-versioner som stöds

Bibliotek med notebook-omfång

Med bibliotek med notebook-omfång, som är tillgängliga för Python och R, kan du installera bibliotek och skapa en miljö som är begränsad till en notebook-session. De här biblioteken påverkar inte andra notebook-filer som körs i samma kluster. Bibliotek med notebook-omfång bevaras inte och måste installeras på nytt för varje session. Använd bibliotek med notebook-omfång när du behöver en anpassad miljö för en specifik notebook-fil.

Kommentar

JAR:er kan inte installeras på notebook-nivå.

Viktigt!

Arbetsytebibliotek har blivit inaktuella och bör inte användas. Se Arbetsytebibliotek (äldre). Att lagra bibliotek som arbetsytefiler skiljer sig dock från arbetsytebibliotek och stöds fortfarande fullt ut. Du kan installera bibliotek som lagras som arbetsytefiler direkt till beräknings- eller jobbuppgifter.

Python-miljöhantering

Följande tabell visar en översikt över alternativen du kan använda för att installera Python-bibliotek i Azure Databricks.

Kommentar

  • Anpassade containrar som använder en conda-baserad miljö är inte kompatibla med bibliotek med notebook-omfattning och med klusterbibliotek i Databricks Runtime 10.4 LTS och senare. Istället rekommenderar Azure Databricks att man installerar bibliotek direkt i bilden eller använder init-skript. För att fortsätta använda klusterbibliotek i dessa scenarier kan du ställa in Spark-konfigurationen spark.databricks.driverNfs.clusterWidePythonLibsEnabled till false. Stöd för Spark-konfigurationen tas bort den 31 december 2021 eller senare.
Python-paketkälla Bibliotek med notebook-omfång med %pip Bibliotek med notebook-omfång med YAML-basmiljöfil Klusterbibliotek Jobbbibliotek med Jobb-API
PyPI Använd %pip install. Se exempel. Lägg till ett PyPI-paketnamn i en YAML-basmiljöfil. Se exempel. Välj PyPI som källa. Lägg till ett nytt pypi-objekt i jobbiblioteken och ange fältet package.
Privat PyPI-mirror, till exempel Nexus eller Artifactory Använd %pip installmed alternativet --index-url. Hemlighetshantering är tillgängligt. Se exempel. -–index-url Lägg till i en YAML-basmiljöfil. Hemlighetshantering är tillgängligt. Se exempel. Stöds ej. Stöds ej.
Versionskontrollsystem, till exempel GitHub, med rå källkod Använd %pip install och ange lagringsplatsens URL som paketnamn. Se exempel. Lägg till en lagringsplats-URL som ett paketnamn i en YAML-basmiljöfil. Se exempel. Välj PyPI som källa och ange lagringsplatsens URL som paketnamn. Lägg till ett nytt pypi-objekt i jobbiblioteken och ange lagringsplatsens URL som package-fält.
Privat versionskontrollsystem med rå källkod Använd %pip install och ange lagringsplatsens URL med grundläggande autentisering som paketnamn. Hemlighetshantering är tillgängligt. Se exempel. Lägg till en lagringsplats med grundläggande autentisering som paketnamn i en YAML-basmiljöfil. Se exempel. Stöds ej. Stöds ej.
Filsökväg Använd %pip install. Se exempel. Lägg till en filsökväg som ett paketnamn i en YAML-basmiljöfil. Se exempel. Välj Filsökväg/ADLS som källa. Lägg till ett nytt egg objekt eller whl objekt i jobbbiblioteken och ange filsökvägen som package fält.
Azure Data Lake Storage Gen2 Använd %pip install tillsammans med en försignerad URL. Sökvägar med Azure Data Lake Storage Gen2-protokollet abfss:// stöds inte. Lägg till en försignerad URL som paketnamn i en YAML-basmiljöfil. Sökvägar med Azure Data Lake Storage Gen2-protokollet abfss:// stöds inte. Välj Filsökväg/ADLS som källa. Lägg till ett nytt egg objekt eller whl ett objekt i jobbbiblioteken och ange Sökvägen Azure Data Lake Storage Gen2 som package fält.

Prioritet för Python-bibliotek

Du kan stöta på en situation där du behöver åsidosätta versionen för ett inbyggt bibliotek eller ha ett anpassat bibliotek som står i konflikt med ett annat bibliotek som är installerat i klustret. När du kör import <library>importeras biblioteket med hög prioritet.

Viktigt!

Bibliotek som lagras i arbetsytefiler har olika prioritet beroende på hur de läggs till i Python sys.path. En Databricks Git-mapp lägger till den aktuella arbetskatalogen i sökvägen före alla andra bibliotek, medan notebook-filer utanför Git-mappar lägger till den aktuella arbetskatalogen när andra bibliotek har installerats. Om du lägger till kataloger för arbetsytor manuellt i din sökväg har dessa alltid den lägsta prioriteten.

Följande listordningar har företräde från högsta till lägsta. I den här listan innebär ett lägre tal högre prioritet.

  1. Bibliotek i den aktuella arbetskatalogen (endast Git-mappar).
  2. Bibliotek i rotkatalogen för Git-mappen (endast Git-mappar).
  3. Bibliotek med notebook-omfång (%pip install i notebook-filer).
  4. Klusterbibliotek (med hjälp av användargränssnittet, CLI eller API).
  5. Bibliotek som ingår i Databricks Runtime.
    • Bibliotek som installeras med init-skript kan matcha före eller efter inbyggda bibliotek, beroende på hur de installeras. Databricks rekommenderar inte att du installerar bibliotek med init-skript.
  6. Bibliotek i den aktuella arbetskatalogen (inte i Git-mappar).
  7. Arbetsytefiler som läggs till i sys.path.