Bibliotheken

Als u een externe of aangepaste code beschikbaar wilt maken voor notebooks en taken die worden uitgevoerd op uw clusters, kunt u een bibliotheek installeren. Bibliotheken kunnen worden geschreven in Python, Java, Scala en R. U kunt Python-, Java- en Scala-bibliotheken uploaden en verwijzen naar externe pakketten in PyPI-, Maven- en CRAN-opslagplaatsen.

Azure Databricks bevat nu veel algemene bibliotheken in Databricks Runtime. Als u wilt zien welke bibliotheken standaard in Databricks Runtime zijn inbegrepen, gaat u naar de subsectie Systeemomgeving van de Databricks Runtime-releaseopmerkingen voor uw Databricks Runtime-versie.

Notitie

Microsoft Ondersteuning helpt bij het isoleren en oplossen van problemen met bibliotheken die zijn geïnstalleerd en worden beheerd door Azure Databricks. Voor onderdelen van derden, waaronder bibliotheken, biedt Microsoft commercieel redelijke ondersteuning om u te helpen bij het oplossen van problemen. Microsoft Ondersteuning biedt ondersteuning naar beste vermogen en kan het probleem mogelijk oplossen. Voor opensource-connectors en -projecten die op Github worden gehost, raden we u aan problemen op Github te melden en op te volgen. Ontwikkelingsinspanningen zoals arcerings-JAR's of het bouwen van Python-bibliotheken worden niet ondersteund via het standaard proces voor het indienen van een ondersteuningscase. Om deze inspanningen sneller te kunnen oplossen, is een adviesbenadering vereist. De ondersteuning kan u vragen andere kanalen voor opensource-technologieën te benaderen waar u diepgaande expertise voor die technologie vindt. Er zijn verschillende communitysites. Twee voorbeelden zijn de Microsoft Q&A-pagina voor Azure Databricks en Stack Overflow.

Clusterbibliotheken

U kunt bibliotheken op clusters installeren, zodat ze kunnen worden gebruikt door alle notebooks en taken die op het cluster worden uitgevoerd. Databricks ondersteunt Python-, JAR- en R-bibliotheken. Zie Clusterbibliotheken.

U kunt een clusterbibliotheek rechtstreeks vanuit de volgende bronnen installeren:

Niet alle locaties worden ondersteund voor alle typen bibliotheken of alle rekenconfiguraties. Zie Aanbevelingen voor het uploaden van bibliotheken voor configuratieaankopen.

Belangrijk

Bibliotheken kunnen worden geïnstalleerd vanuit DBFS wanneer u Databricks Runtime 14.3 LTS en hieronder gebruikt. Elke werkruimtegebruiker kan echter bibliotheekbestanden wijzigen die zijn opgeslagen in DBFS. Om de beveiliging van bibliotheken in een Azure Databricks-werkruimte te verbeteren, wordt het opslaan van bibliotheekbestanden in de DBFS-hoofdmap afgeschaft en standaard uitgeschakeld in Databricks Runtime 15.0 en hoger. Zie Opslaan van bibliotheken in dbFS-hoofdmap is afgeschaft en standaard uitgeschakeld.

In plaats daarvan raadt Databricks aan om alle bibliotheken, waaronder Python-bibliotheken, JAR-bestanden en Spark-connectors, te uploaden naar werkruimtebestanden of Unity Catalog-volumes, of om opslagplaatsen van bibliotheekpakketten te gebruiken. Als uw workload deze patronen niet ondersteunt, kunt u ook bibliotheken gebruiken die zijn opgeslagen in de opslag van cloudobjecten.

Zie ondersteuning voor Python-bibliotheken, ondersteuning voor Java- en Scala-bibliotheken en R-bibliotheekondersteuning voor volledige informatie over bibliotheekondersteuning.

Aanbevelingen voor het uploaden van bibliotheken

Databricks ondersteunt de meeste configuratie-installaties van Python-, JAR- en R-bibliotheken, maar er zijn enkele niet-ondersteunde scenario's. Het is raadzaam om bibliotheken te uploaden naar bronlocaties die ondersteuning bieden voor installatie op compute met de modus voor gedeelde toegang, omdat dit de aanbevolen modus is voor alle workloads. Zie Access-modi. Wanneer u werkstromen plant met de modus gedeelde toegang, voert u de werkstroom uit met een service-principal.

Belangrijk

Gebruik alleen compute met de modus voor toegang van één gebruiker als de vereiste functionaliteit niet wordt ondersteund door de modus voor gedeelde toegang. Geen isolatie van de modus voor gedeelde toegang is een verouderde configuratie in Databricks die niet wordt aanbevolen.

De volgende tabel bevat aanbevelingen die zijn georganiseerd door de Databricks Runtime-versie en de activering van Unity Catalog.

Configuratie Aanbeveling
Databricks Runtime 13.3 LTS en hoger met Unity Catalog Installeer bibliotheken op compute met de modus voor gedeelde toegang van Unity Catalog-volumes met GRANT READ voor alle accountgebruikers.

Indien van toepassing moeten Maven-coördinaten en JAR-bibliotheekpaden worden toegevoegd aan de acceptatielijst.
Databricks Runtime 11.3 LTS en hoger zonder Unity Catalog Installeer bibliotheken uit werkruimtebestanden. (De bestandsgrootte is 500 MB.)
Databricks Runtime 10.4 LTS en lager Installeer bibliotheken vanuit cloudobjectopslag.

Ondersteuning voor Python-bibliotheken

In de volgende tabel wordt aangegeven dat databricks Runtime-versiecompatibiliteit is voor Python-wielbestanden voor verschillende clustertoegangsmodi op basis van de locatie van de bibliotheekbron. Zie de releaseopmerkingen van Databricks Runtime- en compatibiliteits - en Access-modi.

Met Databricks Runtime 15.0 en hoger kunt u requirements.txt bestanden gebruiken om uw Python-afhankelijkheden te beheren. Deze bestanden kunnen worden geüpload naar elke ondersteunde bronlocatie.

Notitie

Het installeren van Python-eibestanden wordt niet ondersteund met Databricks Runtime 14.0 en hoger. Gebruik in plaats daarvan Python wheel-bestanden of installeer pakketten van PyPI.

Modus voor gedeelde toegang Toegangsmodus voor één gebruiker Geen isolatiemodus voor gedeelde toegang (verouderd)
PyPI 13.3 LTS en hoger Alle ondersteunde Databricks Runtime-versies Alle ondersteunde Databricks Runtime-versies
Werkruimtebestanden 13.3 LTS en hoger 13.3 LTS en hoger 14.1 en hoger
Volumes 13.3 LTS en hoger 13.3 LTS en hoger Niet ondersteund
Cloudopslag 13.3 LTS en hoger Alle ondersteunde Databricks Runtime-versies Alle ondersteunde Databricks Runtime-versies
DBFS (niet aanbevolen) Niet ondersteund 14.3 en lager 14.3 en lager

Ondersteuning voor Java- en Scala-bibliotheken

In de volgende tabel wordt aangegeven dat databricks Runtime-versiecompatibiliteit is voor JAR-bestanden voor verschillende clustertoegangsmodi op basis van de locatie van de bibliotheekbron. Zie de releaseopmerkingen van Databricks Runtime- en compatibiliteits - en Access-modi.

Notitie

Voor de modus voor gedeelde toegang moet een beheerder Maven-coördinaten en -paden voor JAR-bibliotheken toevoegen aan een allowlist. Zie Allowlist-bibliotheken en init-scripts voor gedeelde berekeningen.

Modus voor gedeelde toegang Toegangsmodus voor één gebruiker Geen isolatiemodus voor gedeelde toegang (verouderd)
Maven 13.3 LTS en hoger Alle ondersteunde Databricks Runtime-versies Alle ondersteunde Databricks Runtime-versies
Werkruimtebestanden Niet ondersteund Niet ondersteund 14.1 en hoger
Volumes 13.3 LTS en hoger 13.3 LTS en hoger Niet ondersteund
Cloudopslag 13.3 LTS en hoger Alle ondersteunde Databricks Runtime-versies Alle ondersteunde Databricks Runtime-versies
DBFS (niet aanbevolen) Niet ondersteund 14.3 en lager 14.3 en lager

Ondersteuning voor R-bibliotheek

De volgende tabel geeft compatibiliteit met databricks Runtime-versies aan voor CRAN-pakketten voor verschillende clustertoegangsmodi. Zie de releaseopmerkingen van Databricks Runtime- en compatibiliteits - en Access-modi.

Modus voor gedeelde toegang Toegangsmodus voor één gebruiker Geen isolatiemodus voor gedeelde toegang (verouderd)
CRAN Niet ondersteund Alle ondersteunde Databricks Runtime-versies Alle ondersteunde Databricks Runtime-versies

Notebook-scoped bibliotheken

Met notebook-scoped bibliotheken, beschikbaar voor Python en R, kunt u bibliotheken installeren en een omgeving maken die is afgestemd op een notebooksessie. Deze bibliotheken zijn niet van invloed op andere notebooks die op hetzelfde cluster worden uitgevoerd. Notebook-scoped bibliotheken blijven niet behouden en moeten opnieuw worden geïnstalleerd voor elke sessie. Gebruik notebookbibliotheken wanneer u een aangepaste omgeving nodig hebt voor een specifiek notitieblok.

Notitie

JAR's kunnen niet worden geïnstalleerd op notebookniveau.

Belangrijk

Werkruimtebibliotheken zijn afgeschaft en mogen niet worden gebruikt. Zie Werkruimtebibliotheken (verouderd). Het opslaan van bibliotheken als werkruimtebestanden verschilt echter van werkruimtebibliotheken en wordt nog steeds volledig ondersteund. U kunt bibliotheken installeren die als werkruimtebestanden zijn opgeslagen, rechtstreeks voor berekenings- of taaktaken.

Python-omgevingsbeheer

De volgende tabel bevat een overzicht van de opties die u kunt gebruiken voor het installeren van Python-bibliotheken in Azure Databricks.

Notitie

  • Aangepaste containers die gebruikmaken van een conda-omgeving zijn niet compatibel met notebookbibliotheken en met clusterbibliotheken in Databricks Runtime 10.4 LTS en hoger. In plaats daarvan beveelt Azure Databricks aan om bibliotheken rechtstreeks in de installatiekopieën te installeren of init-scripts te gebruiken. Als u clusterbibliotheken in deze scenario's wilt blijven gebruiken, kunt u de Spark-configuratiespark.databricks.driverNfs.clusterWidePythonLibsEnabled instellen op false. Ondersteuning voor de Spark-configuratie wordt verwijderd op of na 31 december 2021.
Python-pakketbron Notebook-scoped bibliotheken met %pip Clusterbibliotheken Taakbibliotheken met jobs-API
PyPI Gebruik %pip install. Zie voorbeeld. Selecteer PyPI als bron. Voeg een nieuw pypi-object toe aan de taakbibliotheken en geef het veld package op.
Privé-PyPI-mirror, zoals Nexus of Artifactory Gebruik %pip install met de optie --index-url. Geheimenbeheer is beschikbaar. Zie voorbeeld. Wordt niet ondersteund. Wordt niet ondersteund.
VCS, zoals GitHub, met onbewerkte bron Gebruik %pip install en geef de opslagplaats-URL op als pakketnaam. Zie voorbeeld. Selecteer PyPI als bron en geef de URL van de opslagplaats op als pakketnaam. Voeg een nieuw pypi object toe aan de taakbibliotheken en geef de URL van de opslagplaats op als het package veld.
Privé-VCS met onbewerkte bron Gebruik %pip install en geef de opslagplaats-URL met basisverificatie op als pakketnaam. Geheimenbeheer is beschikbaar. Zie voorbeeld. Wordt niet ondersteund. Wordt niet ondersteund.
Bestandspad Gebruik %pip install. Zie [voorbeeld](/libraries/notebooks-python-libraries.md#workspace-files. Selecteer Bestandspad/ADLS als bron. Voeg een nieuw egg object toe whl aan de taakbibliotheken en geef het bestandspad op als het package veld.
Azure Data Lake Storage Gen2 Gebruik %pip install deze samen met een vooraf ondertekende URL. Paden met het Azure Data Lake Storage Gen2-protocol abfss:// worden niet ondersteund. Selecteer Bestandspad/ADLS als bron. Voeg een nieuw egg of whl object toe aan de taakbibliotheken en geef het Azure Data Lake Storage Gen2-pad op als het package veld.

Prioriteit van Python-bibliotheek

Mogelijk ondervindt u een situatie waarin u de versie voor een ingebouwde bibliotheek moet overschrijven of een aangepaste bibliotheek moet hebben die een conflict in naam heeft met een andere bibliotheek die op het cluster is geïnstalleerd. Wanneer u deze uitvoert import <library>, wordt de bibliotheek met de hoge prioriteit geïmporteerd.

Belangrijk

Bibliotheken die zijn opgeslagen in werkruimtebestanden hebben een andere prioriteit, afhankelijk van hoe ze worden toegevoegd aan Python sys.path. Een Databricks Git-map voegt de huidige werkmap toe aan het pad voordat alle andere bibliotheken, terwijl notebooks buiten Git-mappen de huidige werkmap toevoegen nadat andere bibliotheken zijn geïnstalleerd. Als u handmatig werkruimtemappen aan uw pad toevoegt, hebben deze altijd de laagste prioriteit.

De volgende lijst geeft prioriteit van hoog naar laag. In deze lijst betekent een lager getal een hogere prioriteit.

  1. Bibliotheken in de huidige werkmap (alleen Git-mappen).
  2. Bibliotheken in de hoofdmap van de Git-map (alleen Git-mappen).
  3. Notebook-scoped bibliotheken (%pip install in notebooks).
  4. Clusterbibliotheken (met behulp van de gebruikersinterface, CLI of API).
  5. Bibliotheken die zijn opgenomen in Databricks Runtime.
    • Bibliotheken die zijn geïnstalleerd met init-scripts, kunnen worden opgelost voor of na ingebouwde bibliotheken, afhankelijk van hoe ze zijn geïnstalleerd. Databricks raadt het installeren van bibliotheken met init-scripts niet aan.
  6. Bibliotheken in de huidige werkmap (niet in Git-mappen).
  7. Werkruimtebestanden toegevoegd aan de sys.path.