Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano składnię deklarowania zależności bibliotek dla pakietów zasobów Databricks. Pakiety umożliwiają zarządzanie programowe zadaniami Lakeflow. Zobacz Co to są pakiety zasobów usługi Databricks?.
Oprócz notatników i plików źródłowych, twoje zadania będą prawdopodobnie zależeć od bibliotek, żeby działały zgodnie z oczekiwaniami. Zależności bibliotek są deklarowane w plikach konfiguracji pakietu i często są niezbędne jako część specyfikacji typu zadania w ramach pracy.
Pakiety zapewniają obsługę następujących zależności bibliotek:
- Plik wheel języka Python
- Plik JAR (Java lub Scala)
- Pakiety PyPI, Maven lub CRAN
W przypadku języka Python można również określić zależności zadań w pliku requirements.txt i uwzględnić je w pakiecie. Zobacz python requirements.txt.
Uwaga
To, czy biblioteka jest obsługiwana, zależy od konfiguracji klastra i źródła biblioteki. Aby uzyskać pełne informacje o obsłudze bibliotek, zobacz Instalowanie bibliotek.
Plik wheel języka Python
Aby dodać plik wheel języka Python do zadania, w libraries określ whl mapowanie dla każdej biblioteki do zainstalowania. Plik wheel można zainstalować z plików w przestrzeni roboczej, woluminów Katalogu Unity, przechowywania obiektów w chmurze lub lokalnej ścieżki.
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 zostało uznane za niezalecane i jest domyślnie wyłączone w środowisku Databricks Runtime 15.1 i nowszych wersjach. 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, woluminów Unity Catalog lub korzystanie z 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
includeelement wsyncmapowaniu 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-volumew 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 (Java lub Scala)
Aby dodać plik JAR do zadania, w libraries określ jar mapowanie dla każdej biblioteki do zainstalowania. Można zainstalować plik JAR z woluminów Unity Catalog, chmurowej pamięci obiektowej 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 zostało uznane za niezalecane i jest domyślnie wyłączone w środowisku Databricks Runtime 15.1 i nowszych wersjach. 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, woluminów Unity Catalog lub korzystanie z 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
Na przykład konfigurację, która kompiluje i wdraża plik JAR, zobacz Pakiet, który przekazuje plik JAR do katalogu Unity. Aby zapoznać się z samouczkiem zawierającym projekt pakietu, który buduje i wdraża plik JAR Scala, zobacz Tworzenie pliku JAR Scala przy użyciu pakietów zasobów usługi Databricks.
Pakiet PyPI
Aby dodać pakiet PyPI do definicji zadania, w libraries określ pypi mapowanie dla każdego pakietu PyPI do zainstalowania. Dla każdego mapowania określ następujące elementy:
- W polu
packageokreśl nazwę pakietu PyPI do zainstalowania. Obsługiwana jest również opcjonalna dokładna specyfikacja wersji. - Opcjonalnie w polu
repookreś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
pipindeksu.
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, w pliku libraries określ maven mapowanie dla każdego pakietu Maven do zainstalowania. Dla każdego mapowania określ następujące elementy:
- W polu
coordinatesokreśl współrzędne narzędzia Maven w stylu Gradle dla pakietu. - Opcjonalnie w polu
repookreś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
exclusionsokreśl wszelkie zależności, które mają zostać jawnie wykluczone. Zobacz Wykluczenia zależności 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*
requirements.txt języka Python
Zależności biblioteki języka Python można również określić w pliku requirements*.txt dołączonym do definicji zadania. Ścieżka do pliku może być ścieżką lokalną, ścieżką obszaru roboczego lub ścieżką woluminu katalogu Unity.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- requirements: ./local/path/requirements.txt