Zależności biblioteki pakietów zasobów usługi Databricks
W tym artykule opisano składnię deklarowania zależności biblioteki pakietów zasobów usługi Databricks. Pakiety umożliwiają programowe zarządzanie przepływami pracy usługi Azure Databricks. Zobacz Co to są pakiety zasobów usługi Databricks?.
Oprócz notesów zadania usługi Azure Databricks prawdopodobnie będą zależeć od bibliotek, aby działały zgodnie z oczekiwaniami. Zależności pakietów zasobów usługi Databricks dla programowania lokalnego są określone w pliku w requirements*.txt
katalogu głównym projektu pakietu, ale zależności biblioteki zadań są deklarowane w plikach konfiguracji pakietu i są często niezbędne w ramach specyfikacji typu zadania.
Pakiety zapewniają obsługę następujących zależności bibliotek dla zadań usługi Azure Databricks:
- Plik wheel języka Python
- Plik JAR (Java lub Scala)
- Pakiety PyPI, Maven lub CRAN
Uwaga
To, czy biblioteka jest obsługiwana, zależy od konfiguracji klastra dla zadania i źródła biblioteki. Aby uzyskać pełne informacje o obsłudze bibliotek, zobacz Biblioteki.
Plik wheel języka Python
Aby dodać plik wheel języka Python do zadania zadania, w libraries
polu Określ whl
mapowanie dla każdej biblioteki do zainstalowania. Plik koła można zainstalować z plików obszaru roboczego, woluminów wykazu aparatu Unity, magazynu obiektów w chmurze lub lokalnej ścieżki pliku.
Ważne
Biblioteki można instalować z systemu plików DBFS podczas korzystania z środowiska Databricks Runtime 14.3 LTS i poniżej. Jednak każdy użytkownik obszaru roboczego może modyfikować pliki biblioteki przechowywane w systemie plików DBFS. Aby zwiększyć bezpieczeństwo bibliotek w obszarze roboczym usługi Azure Databricks, przechowywanie plików bibliotek w katalogu głównym systemu plików DBFS jest domyślnie przestarzałe i wyłączone w środowisku Databricks Runtime 15.1 lub nowszym. Zobacz Przechowywanie bibliotek w katalogu głównym systemu plików DBFS jest domyślnie przestarzałe i wyłączone.
Zamiast tego usługa Databricks zaleca przekazywanie wszystkich bibliotek, w tym bibliotek języka Python, plików JAR i łączników platformy Spark, do plików obszaru roboczego lub woluminów wykazu aparatu Unity lub przy użyciu repozytoriów pakietów biblioteki. Jeśli obciążenie nie obsługuje tych wzorców, możesz również użyć bibliotek przechowywanych w magazynie obiektów w chmurze.
W poniższym przykładzie pokazano, jak zainstalować trzy pliki koła języka Python dla zadania zadania podrzędnego.
- Pierwszy plik koła języka Python został wcześniej przekazany do obszaru roboczego usługi Azure Databricks lub dodany jako
include
element wsync
mapowaniu i znajduje się w tym samym folderze lokalnym co plik konfiguracji pakietu. - Drugi plik koła języka Python znajduje się w określonej lokalizacji plików obszaru roboczego w obszarze roboczym usługi Azure Databricks.
- Trzeci plik koła języka Python został wcześniej przekazany do woluminu o nazwie
my-volume
w obszarze roboczym usługi 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
Plik JAR
Aby dodać plik JAR do zadania zadania zadania, określ libraries
jar
mapowanie dla każdej biblioteki do zainstalowania. Plik JAR można zainstalować z plików obszaru roboczego, woluminów wykazu aparatu Unity, magazynu obiektów w chmurze lub lokalnej ścieżki pliku.
Ważne
Biblioteki można instalować z systemu plików DBFS podczas korzystania z środowiska Databricks Runtime 14.3 LTS i poniżej. Jednak każdy użytkownik obszaru roboczego może modyfikować pliki biblioteki przechowywane w systemie plików DBFS. Aby zwiększyć bezpieczeństwo bibliotek w obszarze roboczym usługi Azure Databricks, przechowywanie plików bibliotek w katalogu głównym systemu plików DBFS jest domyślnie przestarzałe i wyłączone w środowisku Databricks Runtime 15.1 lub nowszym. Zobacz Przechowywanie bibliotek w katalogu głównym systemu plików DBFS jest domyślnie przestarzałe i wyłączone.
Zamiast tego usługa Databricks zaleca przekazywanie wszystkich bibliotek, w tym bibliotek języka Python, plików JAR i łączników platformy Spark, do plików obszaru roboczego lub woluminów wykazu aparatu Unity lub przy użyciu repozytoriów pakietów biblioteki. Jeśli obciążenie nie obsługuje tych wzorców, możesz również użyć bibliotek przechowywanych w magazynie obiektów w chmurze.
W poniższym przykładzie pokazano, jak zainstalować plik JAR, który został wcześniej przekazany do woluminu o nazwie my-volume
w obszarze roboczym usługi Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Pakiet PyPI
Aby dodać pakiet PyPI do definicji zadania zadania, w libraries
pliku określ pypi
mapowanie dla każdego pakietu PyPI do zainstalowania. Dla każdego mapowania określ następujące elementy:
- W polu
package
określ nazwę pakietu PyPI do zainstalowania. Obsługiwana jest również opcjonalna dokładna specyfikacja wersji. - Opcjonalnie w polu
repo
określ repozytorium, w którym można znaleźć pakiet PyPI. Jeśli nie zostanie określony, używany jest indeks domyślnypip
(https://pypi.org/simple/).
W poniższym przykładzie pokazano, jak zainstalować dwa pakiety PyPI.
- Pierwszy pakiet PyPI używa określonej wersji pakietu i indeksu domyślnego
pip
. - Drugi pakiet PyPI używa określonej wersji pakietu i jawnie określonego
pip
indeksu.
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/
Pakiet Maven
Aby dodać pakiet Maven do definicji zadania zadania, w libraries
pliku określ maven
mapowanie dla każdego pakietu Maven do zainstalowania. Dla każdego mapowania określ następujące elementy:
- W polu
coordinates
określ współrzędne narzędzia Maven w stylu Gradle dla pakietu. - Opcjonalnie w polu
repo
określ repozytorium Maven, z których chcesz zainstalować pakiet Maven. W przypadku pominięcia przeszukiwane są zarówno centralne repozytorium Maven, jak i repozytorium pakietów Spark. - Opcjonalnie w polu
exclusions
określ wszelkie zależności, które mają zostać jawnie wykluczone. Zobacz Wykluczenia zależności narzędzia Maven.
W poniższym przykładzie pokazano, jak zainstalować dwa pakiety Maven.
- Pierwszy pakiet Maven używa określonych współrzędnych pakietu i wyszukuje go zarówno w repozytorium centralnym maven, jak i repozytorium pakietów Spark.
- Drugi pakiet Maven używa określonych współrzędnych pakietu, wyszukuje ten pakiet tylko w repozytorium centralnym maven i nie zawiera żadnych zależności tego pakietu pasujących do określonego wzorca.
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*