Delen via


Bibliotheekafhankelijkheden van Databricks Asset Bundles

In dit artikel worden de syntaxis beschreven voor het declareren van bibliotheekafhankelijkheden van Databricks Asset Bundles. Bundels maken programmatisch beheer van Azure Databricks-werkstromen mogelijk. Bekijk wat zijn Databricks Asset Bundles?.

Naast notebooks zijn uw Azure Databricks-taken waarschijnlijk afhankelijk van bibliotheken om naar verwachting te kunnen werken. Databricks Asset Bundles-afhankelijkheden voor lokale ontwikkeling worden opgegeven in het requirements*.txt bestand in de hoofdmap van het bundelproject, maar taaktaakbibliotheekafhankelijkheden worden gedeclareerd in uw bundelconfiguratiebestanden en zijn vaak nodig als onderdeel van de taaktypespecificatie .

Bundels bieden ondersteuning voor de volgende bibliotheekafhankelijkheden voor Azure Databricks-taken:

  • Python wheel-bestand
  • JAR-bestand (Java of Scala)
  • PyPI-, Maven- of CRAN-pakketten

Notitie

Of een bibliotheek wel of niet wordt ondersteund, is afhankelijk van de clusterconfiguratie voor de taak en de bibliotheekbron. Zie Bibliotheken voor volledige informatie over bibliotheekondersteuning.

Python wheel-bestand

Als u een Python-wielbestand aan een taaktaak wilt toevoegen, libraries geeft u een whl toewijzing op voor elke bibliotheek die moet worden geïnstalleerd. U kunt een wielbestand installeren vanuit werkruimtebestanden, Unity Catalog-volumes, cloudobjectopslag of een lokaal bestandspad.

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 standaard afgeschaft en uitgeschakeld in Databricks Runtime 15.1 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.

In het volgende voorbeeld ziet u hoe u drie Python-wielbestanden voor een taaktaak installeert.

  • Het eerste Python-wielbestand is eerder geüpload naar de Azure Databricks-werkruimte of toegevoegd als een include item in de sync toewijzing en bevindt zich in dezelfde lokale map als het bundelconfiguratiebestand.
  • Het tweede Python-wielbestand bevindt zich op de opgegeven locatie van werkruimtebestanden in de Azure Databricks-werkruimte.
  • Het derde Python-wielbestand is eerder geüpload naar het volume met de naam my-volume in de Azure Databricks-werkruimte.
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-bestand

Als u een JAR-bestand wilt toevoegen aan een taaktaak, libraries geeft u een jar toewijzing op voor elke bibliotheek die moet worden geïnstalleerd. U kunt een JAR installeren vanuit werkruimtebestanden, Unity Catalog-volumes, cloudobjectopslag of een lokaal bestandspad.

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 standaard afgeschaft en uitgeschakeld in Databricks Runtime 15.1 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.

In het volgende voorbeeld ziet u hoe u een JAR-bestand installeert dat eerder is geüpload naar het volume met de naam my-volume in de Azure Databricks-werkruimte.

resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar

PyPI-pakket

Als u een PyPI-pakket wilt toevoegen aan een taaktaakdefinitie, librariesgeeft u een pypi toewijzing op voor elk PyPI-pakket dat moet worden geïnstalleerd. Geef voor elke toewijzing het volgende op:

  • packageGeef de naam op van het PyPI-pakket dat moet worden geïnstalleerd. Er wordt ook een optionele exacte versiespecificatie ondersteund.
  • Geef desgewenst repode opslagplaats op waar het PyPI-pakket kan worden gevonden. Als dit niet is opgegeven, wordt de standaardindex pip gebruikt (https://pypi.org/simple/).

In het volgende voorbeeld ziet u hoe u twee PyPI-pakketten installeert.

  • Het eerste PyPI-pakket maakt gebruik van de opgegeven pakketversie en de standaardindex pip .
  • Het tweede PyPI-pakket maakt gebruik van de opgegeven pakketversie en de expliciet opgegeven pip index.
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-pakket

Als u een Maven-pakket wilt toevoegen aan een taakdefinitie, librariesgeeft u een maven toewijzing op voor elk Maven-pakket dat moet worden geïnstalleerd. Geef voor elke toewijzing het volgende op:

  • coordinatesGeef voor het pakket de Maven-coördinaten in Gradle-stijl op.
  • Geef desgewenst repode Maven-opslagplaats op waaruit het Maven-pakket moet worden geïnstalleerd. Als u dit weglaat, worden zowel de centrale Maven-opslagplaats als de Spark Packages-opslagplaats doorzocht.
  • Geef eventueel exclusionseventuele afhankelijkheden op die expliciet moeten worden uitgesloten. Zie Uitsluitingen van Maven-afhankelijkheid.

In het volgende voorbeeld ziet u hoe u twee Maven-pakketten installeert.

  • Het eerste Maven-pakket maakt gebruik van de opgegeven pakketcoördinaten en zoekt naar dit pakket in zowel de Centrale Opslagplaats van Maven als de Opslagplaats voor Spark-pakketten.
  • Het tweede Maven-pakket maakt gebruik van de opgegeven pakketcoördinaten, zoekt alleen naar dit pakket in de Centrale Opslagplaats van Maven en bevat geen van de afhankelijkheden van dit pakket die overeenkomen met het opgegeven patroon.
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*