Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden de syntaxis beschreven voor het declareren van bibliotheekafhankelijkheden van Databricks Asset Bundles. Bundels maken programmatisch beheer van Lakeflow-taken mogelijk. Bekijk wat zijn Databricks Asset Bundles?.
Naast notebooks en bronbestanden zijn uw taken waarschijnlijk afhankelijk van bibliotheken om naar verwachting te kunnen werken. Bibliotheekafhankelijkheden worden gedeclareerd in uw bundelconfiguratiebestanden en zijn vaak nodig als onderdeel van de taaktypespecificatie van de taak.
Bundels bieden ondersteuning voor de volgende bibliotheekafhankelijkheden:
- Python wheel-bestand
- JAR-bestand (Java of Scala)
- PyPI-, Maven- of CRAN-pakketten
Voor Python kunt u ook taaktaakafhankelijkheden opgeven in een requirements.txt bestand en die in uw bundel opnemen. Zie Python requirements.txt.
Notitie
Of een bibliotheek wordt ondersteund, is afhankelijk van de clusterconfiguratie en de bibliotheekbron. Zie Bibliotheken installeren voor volledige informatie over bibliotheekondersteuning.
Python wheel-bestand
Als u een Python wheel-bestand aan een taak wilt toevoegen, geeft u in libraries 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 beveelt Databricks aan om alle bibliotheken, inclusief Python-bibliotheken, JAR-bestanden en Spark-connectors, te uploaden naar werkruimtebestanden of Unity Catalog-volumes, of om gebruik te maken van bibliotheekpakketopslagplaatsen. 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
includeitem in desynctoewijzing 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-volumein 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 (Java of Scala)
Voeg een JAR-bestand toe aan een taak door in libraries een jar toewijzing op te geven voor elke bibliotheek die moet worden geïnstalleerd. U kunt een JAR installeren vanuit 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 beveelt Databricks aan om alle bibliotheken, inclusief Python-bibliotheken, JAR-bestanden en Spark-connectors, te uploaden naar werkruimtebestanden of Unity Catalog-volumes, of om gebruik te maken van bibliotheekpakketopslagplaatsen. 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
Zie Bundel die een JAR-bestand uploadt naar Unity Catalog, bijvoorbeeld de configuratie waarmee het JAR-bestand wordt gebouwd en geïmplementeerd. Zie Een Scala JAR bouwen met behulp van Databricks Asset Bundles voor een zelfstudie waarmee een bundelproject wordt gemaakt en geïmplementeerd.
PyPI-pakket
Als u een PyPI-pakket wilt toevoegen aan een taakdefinitie, specificeert u in libraries een pypi toewijzing voor elk PyPI-pakket dat moet worden geïnstalleerd. Geef voor elke koppeling 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 eventueel voor
repode opslagplaats op waar het PyPI-pakket kan worden gevonden. Als dit niet is opgegeven, wordt de standaardindexpipgebruikt (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
pipindex.
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, in libraries, specificeert u een maven mapping voor elk Maven-pakket dat moet worden geïnstalleerd. Geef voor elke koppeling 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. - Optioneel, geef
exclusionseventuele afhankelijkheden aan 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*
Python-requirements.txt
Python-bibliotheekafhankelijkheden kunnen ook worden opgegeven in een requirements*.txt bestand dat is opgenomen als onderdeel van de taakdefinitie van de taak. Het pad naar het bestand kan een lokaal pad, een werkruimtepad of een Unity Catalog-volumepad zijn.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt