Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato stránka popisuje syntaxi pro deklarování závislostí knihovny Declarative Automation Bundles. Balíky umožňují programovou správu prostředků Databricks. Viz Co jsou balíčky deklarativní automatizace?
Kromě poznámkových bloků a zdrojových souborů budou vaše úlohy, kanály a další úlohy pravděpodobně záviset na knihovnách. Závislosti knihovny jsou deklarovány v konfiguračních souborech sady.
Sady poskytují podporu pro následující závislosti knihoven.
- Soubor kolečka Pythonu
- Soubor JAR (Java nebo Scala)
- Balíčky PyPI, Maven nebo CRAN
Pro Python můžete také zadat závislosti v souboru pyproject.toml a zahrnout je do sady. Viz uv a pyproject.toml.
Poznámka:
To, jestli je knihovna podporovaná, závisí na konfiguraci clusteru a na zdroji knihovny. Úplné informace o podpoře knihoven najdete v tématu Instalace knihoven.
Soubor kolečka Pythonu
Pokud chcete do úlohy přidat soubor kola Python, zadejte v libraries mapování whl pro každou knihovnu, která se má nainstalovat. Soubor typu wheel můžete nainstalovat ze souborů pracovního prostoru, svazků katalogu Unity, cloudového úložiště objektů nebo cesty k místnímu souboru.
Důležité
Knihovny je možné nainstalovat z DBFS při použití Databricks Runtime 14.3 LTS a níže. Každý uživatel pracovního prostoru ale může upravovat soubory knihovny uložené v DBFS. Aby se zlepšilo zabezpečení knihoven v pracovním prostoru Azure Databricks, ukládání souborů knihoven v kořenovém adresáři DBFS je ve výchozím nastavení v Databricks Runtime 15.1 a novějších zakázaných. Viz Ukládání knihoven v kořenovém adresáři DBFS je ve výchozím nastavení zastaralé a zakázané.
Místo toho Databricks doporučuje nahrávat všechny knihovny, včetně knihoven Pythonu, souborů JAR a konektorů Spark, do souborů pracovního prostoru nebo svazků katalogu Unity, nebo využívat úložiště balíčkových knihoven. Pokud vaše úloha tyto vzory nepodporuje, můžete také použít knihovny uložené v cloudovém úložišti objektů.
Následující příklad ukazuje, jak nainstalovat tři Python wheel soubory pro úlohu.
- První soubor kola Python byl buď dříve nahraný do pracovního prostoru Azure Databricks, nebo byl přidán jako položka
includevsyncmapping a je ve stejné místní složce jako konfigurační soubor sady. - Druhý Python soubor kolečka je v zadaném umístění souborů pracovního prostoru v pracovním prostoru Azure Databricks.
- Třetí soubor kolečka Python se dříve nahrál do svazku s názvem
my-volumev pracovním prostoru Azure Databricks.
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 soubor (Java nebo Scala)
Pokud chcete přidat soubor JAR do úlohy, uveďte v libraries mapování pro každou knihovnujar, která se má nainstalovat. Soubor JAR můžete nainstalovat ze svazků katalogu Unity, cloudového úložiště objektů nebo místní cesty k souboru.
Důležité
Knihovny je možné nainstalovat z DBFS při použití Databricks Runtime 14.3 LTS a níže. Každý uživatel pracovního prostoru ale může upravovat soubory knihovny uložené v DBFS. Aby se zlepšilo zabezpečení knihoven v pracovním prostoru Azure Databricks, ukládání souborů knihoven v kořenovém adresáři DBFS je ve výchozím nastavení v Databricks Runtime 15.1 a novějších zakázaných. Viz Ukládání knihoven v kořenovém adresáři DBFS je ve výchozím nastavení zastaralé a zakázané.
Místo toho Databricks doporučuje nahrávat všechny knihovny, včetně knihoven Pythonu, souborů JAR a konektorů Spark, do souborů pracovního prostoru nebo svazků katalogu Unity, nebo využívat úložiště balíčkových knihoven. Pokud vaše úloha tyto vzory nepodporuje, můžete také použít knihovny uložené v cloudovém úložišti objektů.
Následující příklad ukazuje, jak nainstalovat soubor JAR, který byl dříve odeslán na svazek s názvem my-volume v pracovním prostoru Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Například konfigurace, která sestaví a nasadí soubor JAR, najdete v části Sada, která nahraje soubor JAR do katalogu Unity. Kurz, který vytvoří projekt sady, který sestaví a nasadí soubor SCALA JAR, najdete v tématu Sestavení souboru SCALA JAR pomocí deklarativních balíčků automatizace.
Balíček PyPI
Pokud chcete do definice úlohy přidat balíček PyPI, zadejte mapování libraries pro každý balíček PyPI, který má být nainstalován pypi. Pro každé mapování zadejte následující:
- Zadejte
packagenázev balíčku PyPI, který se má nainstalovat. Podporuje se také volitelná přesná specifikace verze. - Volitelně můžete pro
repozadat úložiště, kde lze najít balíček PyPI. Pokud není zadaný, použije se výchozípipindex (https://pypi.org/simple/).
Následující příklad ukazuje, jak nainstalovat dva balíčky PyPI.
- První balíček PyPI používá zadanou verzi balíčku a výchozí
pipindex. - Druhý balíček PyPI používá zadanou verzi balíčku a explicitně zadaný
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/
Balíček Maven
Pokud chcete do definice úlohy přidat balíček Maven, zadejte libraries mapování mavenpro každý balíček Maven, který se má nainstalovat. Pro každé mapování zadejte následující:
- Zadejte
coordinatessouřadnice Mavenu ve stylu Gradle pro balíček. - Volitelně můžete zadat úložiště Maven pro
repo, ze kterého se má nainstalovat balíček Maven. Pokud tento parametr vynecháte, vyhledá se centrální úložiště Maven i úložiště balíčků Spark. - Volitelně můžete zadat všechny závislosti pro
exclusions, které se mají explicitně vyloučit. Viz vyloučení závislostí Maven.
Následující příklad ukazuje, jak nainstalovat dva balíčky Maven.
- První balíček Maven používá zadané souřadnice balíčku a hledá tento balíček v centrálním úložišti Mavenu i v úložišti balíčků Spark.
- Druhý balíček Maven používá zadané souřadnice balíčku, vyhledá tento balíček pouze v centrálním úložišti Mavenu a neobsahuje žádné závislosti tohoto balíčku, které odpovídají zadanému vzoru.
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
Poznámka:
uv je doporučená metoda správy závislostí knihovny Python. Viz uv a pyproject.toml.
Python závislosti knihovny lze také zadat v souboru requirements*.txt, který je součástí definice úlohy. Cesta k souboru může být místní cesta, cesta pracovního prostoru nebo cesta ke svazku v Katalogu Unity.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt
uv a pyproject.toml
Pokud chcete zahrnout závislosti knihovny Python pomocí uv, zadejte je do souboru pyproject.toml, který je součástí sady, a pak definujte závislost prostředí, která je má zahrnout. Pro více informací o uv se podívejte na Úvod do uv.
Například následující pyproject.toml soubor přidá numpy jako závislost:
[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
Teď upravte konfiguraci svazku prostředků tak, aby zahrnovala každou závislost definovanou v pyproject.toml přidáním upravitelného prostředí, které odkazuje na složku, kde je pyproject.toml nasazen, například v této ukázkové konfiguraci pipeline:
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}
Vytvoření balíčků artefaktů pomocí uv:
# databricks.yml
...
artifacts:
python_artifact:
type: whl
build: uv build --wheel
...