Závislosti knihovny sady prostředků Databricks
Tento článek popisuje syntaxi pro deklarování závislostí knihovny Sady prostředků Databricks. Sady prostředků umožňují programovou správu pracovních postupů Azure Databricks. Podívejte se, co jsou sady prostředků Databricks?
Kromě poznámkových bloků budou vaše úlohy Azure Databricks pravděpodobně záviset na knihovnách, aby fungovaly podle očekávání. Závislosti sady prostředků Databricks pro místní vývoj jsou zadány v requirements*.txt
souboru v kořenovém adresáři projektu sady prostředků, ale závislosti knihovny úloh jsou deklarovány v konfiguračních souborech sady prostředků a často jsou nezbytné jako součást specifikace typu úlohy.
Sady prostředků poskytují podporu pro následující závislosti knihoven pro úlohy Azure Databricks:
- Soubor kolečka Pythonu
- Soubor JAR (Java nebo Scala)
- Balíčky PyPI, Maven nebo CRAN
Poznámka:
To, jestli je knihovna podporovaná, závisí na konfiguraci clusteru pro úlohu a zdroj knihovny. Úplné informace o podpoře knihoven najdete v tématu Knihovny.
Soubor kolečka Pythonu
Pokud chcete do úlohy úlohy přidat soubor kola Pythonu, zadejte mapování pro každou knihovnulibraries
, whl
která se má nainstalovat. Soubor kolečka můžete nainstalovat ze souborů pracovního prostoru, unity Catalogvolumes, 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ů knihovny 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ích prostorů nebo Unity Catalogvolumes, nebo používat úložiště balíčků 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 soubory kol Pythonu pro úlohu úlohy.
- První soubor kolečka Pythonu se buď předtím nahrál do pracovního prostoru Azure Databricks, nebo se přidal jako
include
položka vsync
mapování a je ve stejné místní složce jako konfigurační soubor sady. - Druhý soubor kola Pythonu je v zadaném umístění souborů pracovního prostoru v pracovním prostoru Azure Databricks.
- Třetí soubor kola Pythonu se dříve nahrál do svazku pojmenovaného
my-volume
v 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
Soubor JAR
Pokud chcete přidat soubor JAR do úlohy úlohy, zadejte mapování pro každou knihovnulibraries
, jar
která se má nainstalovat. Soubor JAR můžete nainstalovat ze souborů pracovního prostoru, Unity Catalogvolumes, z cloudového úložiště objektů nebo z 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ů knihovny 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ích prostorů, Unity Catalogvolumesnebo pomocí úložišť balíčků 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 nahraný na svazek pojmenovaný 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
Balíček PyPI
Pokud chcete do definice úlohy přidat balíček PyPI, zadejte libraries
mapování pro každý balíček PyPI, pypi
který se má nainstalovat. Pro každé mapování zadejte následující:
- Zadejte
package
název balíčku PyPI, který se má nainstalovat. Podporuje se také volitelná přesná specifikace verze. - Volitelně můžete pro
repo
zadat úložiště, ve kterém lze najít balíček PyPI where. Pokud není zadaný, použije se výchozípip
index (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í
pip
index. - Druhý balíček PyPI používá zadanou verzi balíčku a explicitně zadaný
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/
Balíček Maven
Pokud chcete do definice úlohy přidat balíček Maven, zadejte libraries
mapování maven
pro každý balíček Maven, který se má nainstalovat. Pro každé mapování zadejte následující:
- Zadejte
coordinates
souřadnice Mavenu ve stylu Gradle pro balíček. - Volitelně můžete zadat
repo
úložiště Maven pro instalaci balíčku Maven z. Pokud tento parametr vynecháte, vyhledá se centrální úložiště Maven i úložiště balíčků Spark. - Volitelně můžete zadat
exclusions
všechny závislosti, které se mají explicitně vyloučit. Podívejte se na vyloučení závislostí Mavenu.
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*