Udostępnij za pośrednictwem


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 w sync 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 librariespliku 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ślny pip (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 librariespliku 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 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*