Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Seite beschreibt die Syntax zum Deklarieren von Deklarativen Automatisierungsbundle-Bibliotheksabhängigkeiten. Bundles ermöglichen die programmgesteuerte Verwaltung von Databricks-Ressourcen. Erfahren Sie , was deklarative Automatisierungspakete sind?.
Neben Notizbüchern und Quelldateien hängen Ihre Aufträge, Pipelines und anderen Workloads wahrscheinlich von Bibliotheken ab. Bibliotheksabhängigkeiten werden in Den Bundlekonfigurationsdateien deklariert.
Bundles bieten Unterstützung für die folgenden Bibliotheksabhängigkeiten:
- Python Wheel-Datei
- JAR-Datei (Java oder Scala)
- PyPI-, Maven- oder CRAN-Pakete
Für Python können Sie auch Abhängigkeiten in einer pyproject.toml-Datei angeben und diese in Ihr Bundle einschließen. Siehe uv und pyproject.toml.
Hinweis
Ob eine Bibliothek unterstützt wird, hängt von der Clusterkonfiguration und der Bibliotheksquelle ab. Vollständige Informationen zur Bibliotheksunterstützung finden Sie unter Installieren von Bibliotheken.
Python Wheel-Datei
Um einer Auftragsaufgabe eine Python Wheel-Datei hinzuzufügen, geben Sie in libraries eine whl Zuordnung für jede zu installierende Bibliothek an. Sie können eine Wheel-Datei aus Arbeitsbereichsdateien, Unity Catalog-Volumes, Cloudobjektspeicher oder einem lokalen Dateipfad installieren.
Wichtig
Bei Verwendung von Databricks Runtime 14.3 LTS und niedriger können Bibliotheken über DBFS installiert werden. Arbeitsbereichsbenutzer und -benutzerinnen können jedoch Bibliotheksdateien ändern, die in DBFS gespeichert sind. Um die Sicherheit von Bibliotheken in einem Azure Databricks Arbeitsbereich zu verbessern, ist das Speichern von Bibliotheksdateien im DBFS-Stamm standardmäßig in Databricks Runtime 15.1 und höher veraltet und deaktiviert. Weitere Informationen finden Sie unter Das Speichern von Bibliotheken im DBFS-Stamm ist veraltet und standardmäßig deaktiviert.
Stattdessen empfiehlt Databricks das Hochladen aller Bibliotheken, einschließlich Python-Bibliotheken, JAR-Dateien und Spark-Connectors, auf die Dateien im Arbeitsbereich oder Unity-Katalog-Volumes oder die Verwendung von Bibliothekspaketrepositorys. Wenn Ihre Workload diese Muster nicht unterstützt, können Sie auch Bibliotheken verwenden, die im Cloudobjektspeicher gespeichert sind.
Das folgende Beispiel zeigt, wie Sie drei Python Wheel-Dateien für eine Aufgabe installieren.
- Die erste Python Raddatei wurde entweder zuvor in den Azure Databricks Arbeitsbereich hochgeladen oder als
includeElement imsyncmapping hinzugefügt und befindet sich im gleichen lokalen Ordner wie die Bundlekonfigurationsdatei. - Die zweite Python-Wheel-Datei befindet sich an dem angegebenen Speicherort der Arbeitsbereichsordner im Azure-Databricks-Arbeitsbereich.
- Die dritte Python Wheel-Datei wurde zuvor auf das Volume
my-volumeim Azure Databricks Arbeitsbereich hochgeladen.
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-Datei (Java oder Scala)
Wenn Sie einer Auftragsaufgabe eine JAR-Datei hinzufügen möchten, geben Sie in libraries eine jar Zuordnung für jede zu installierende Bibliothek an. Sie können ein JAR aus Unity-Katalogvolumes, Cloudobjektspeicher oder einem lokalen Dateipfad installieren.
Wichtig
Bei Verwendung von Databricks Runtime 14.3 LTS und niedriger können Bibliotheken über DBFS installiert werden. Arbeitsbereichsbenutzer und -benutzerinnen können jedoch Bibliotheksdateien ändern, die in DBFS gespeichert sind. Um die Sicherheit von Bibliotheken in einem Azure Databricks Arbeitsbereich zu verbessern, ist das Speichern von Bibliotheksdateien im DBFS-Stamm standardmäßig in Databricks Runtime 15.1 und höher veraltet und deaktiviert. Weitere Informationen finden Sie unter Das Speichern von Bibliotheken im DBFS-Stamm ist veraltet und standardmäßig deaktiviert.
Stattdessen empfiehlt Databricks das Hochladen aller Bibliotheken, einschließlich Python-Bibliotheken, JAR-Dateien und Spark-Connectors, auf die Dateien im Arbeitsbereich oder Unity-Katalog-Volumes oder die Verwendung von Bibliothekspaketrepositorys. Wenn Ihre Workload diese Muster nicht unterstützt, können Sie auch Bibliotheken verwenden, die im Cloudobjektspeicher gespeichert sind.
Das folgende Beispiel zeigt, wie Sie eine JAR-Datei installieren, die zuvor in das Volume mit dem Namen my-volume im arbeitsbereich Azure Databricks hochgeladen wurde.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Beispielkonfiguration zum Erstellen und Bereitstellen des JAR finden Sie unter "Bundle", das eine JAR-Datei in den Unity-Katalog hochlädt. Ein Lernprogramm zum Erstellen eines Bündelprojekts, das ein Scala JAR erstellt und bereitstellt, finden Sie unter Erstellen eines Scala JAR mithilfe von deklarativen Automatisierungspaketen.
PyPI-Paket
Um ein PyPI Paket zu einer Auftragsaufgabendefinition hinzuzufügen, geben Sie in libraries eine pypi-Zuordnung für jedes PyPI-Paket an, das installiert werden soll. Geben Sie für jede Zuordnung Folgendes an:
- Geben Sie für
package, den Namen des zu installierenden PyPI-Pakets an. Eine optionale genaue Versionsangabe wird ebenfalls unterstützt. - Geben Sie optional für
repodas Repository an, in dem das PyPI-Paket gefunden werden kann. Wenn keine Angabe erfolgt, wird derpip-Standardindex verwendet (https://pypi.org/simple/).
Im folgenden Beispiel wird veranschaulicht, wie Sie zwei PyPI-Pakete installieren.
- Das erste PyPI-Paket verwendet die angegebene Paketversion und den Standardindex
pip. - Das zweite PyPI-Paket verwendet die angegebene Paketversion und den explizit angegebenen Index
pip.
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
Um ein Maven Paket zu einer Auftragsaufgabendefinition hinzuzufügen, geben Sie in libraries eine maven-Zuordnung für jedes Maven-Paket an, das installiert werden soll. Geben Sie für jede Zuordnung Folgendes an:
- Geben Sie für
coordinatesdie Maven-Koordinaten im Gradle-Stil für das Paket an. - Geben Sie optional für
repodas Maven-Repository an, aus dem das Maven-Paket installiert werden soll. Wenn dies nicht angegeben wird, werden sowohl das Maven Central Repository als auch das Spark Packages Repository durchsucht. - Geben Sie optional für
exclusionsalle Abhängigkeiten an, die explizit ausgeschlossen werden sollen. Weitere Informationen dazu finden Sie unter Maven-Abhängigkeitsausschlüsse.
Im folgenden Beispiel wird veranschaulicht, wie Sie zwei Maven-Pakete installieren.
- Das erste Maven-Paket verwendet die angegebenen Paketkoordinaten und sucht dieses Paket sowohl im Maven Central Repository als auch im Spark-Pakete-Repository.
- Das zweite Maven-Paket verwendet die angegebenen Paketkoordinaten, sucht dieses Paket nur im Maven Central Repository und enthält keine Abhängigkeiten dieses Pakets, die dem angegebenen Muster entsprechen.
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
Hinweis
uv ist die empfohlene Methode zum Verwalten Python Bibliotheksabhängigkeiten. Siehe uv und pyproject.toml.
Python Bibliotheksabhängigkeiten können auch in einer requirements*.txtDatei angegeben werden, die als Teil der Auftragsaufgabendefinition enthalten ist. Der Pfad zur Datei kann ein lokaler Pfad, ein Arbeitsbereichspfad oder ein Unity Catalog-Volumepfad sein.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt
uv und pyproject.toml
Wenn Sie Python Bibliotheksabhängigkeiten mithilfe von uv einschließen möchten, geben Sie sie in der Datei pyproject.toml an, die Teil des Bundles ist, und definieren Sie dann eine Umgebungsabhängigkeit, um sie einzuschließen. Weitere Informationen finden uvSie unter "Einführung in uv".
Die folgende pyproject.toml Datei fügt numpy als Abhängigkeit hinzu:
[project]
name = "test"
version = "0.0.1"
authors = [{ name = "someone@example.com" }]
requires-python = ">=3.10,<3.13"
dependencies = [
# Any dependencies for jobs and pipelines in this project can be added here
#
# LIMITATION: for pipelines, dependencies are cached during development;
# add dependencies to the 'environment' section of your pipeline.yml file instead
"numpy==1.25.2"
]
[dependency-groups]
dev = [
"pytest",
"ruff",
"databricks-dlt",
"databricks-connect>=15.4,<15.5",
"ipykernel",
]
[project.scripts]
main = "test.main:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.ruff]
line-length = 120
Bearbeiten Sie nun Ihre Bündelressourcenkonfiguration so, dass jede Abhängigkeit, die im pyproject.toml definiert ist, enthalten ist, indem Sie eine editierbare Umgebung hinzufügen, die auf den Ordner verweist, in dem pyproject.toml bereitgestellt wird, z. B. in dieser Beispielpipelinekonfiguration:
resources:
pipelines:
test_uv_etl:
name: test_uv_etl
catalog: ${var.catalog}
schema: ${var.schema}
serverless: true
root_path: '../src/test_uv_etl'
libraries:
- glob:
include: ../src/test_uv_etl/transformations/**
environment:
dependencies:
- --editable ${workspace.file_path}
So erstellen Sie Bündelartefakte mithilfe von uv:
# databricks.yml
...
artifacts:
python_artifact:
type: whl
build: uv build --wheel
...