다음을 통해 공유


Databricks 자산 번들 라이브러리 종속성

이 문서에서는 Databricks 자산 번들 라이브러리 종속성을 선언하는 구문을 설명합니다. 번들을 사용하면 Azure Databricks 워크플로를 프로그래밍 방식으로 관리할 수 있습니다. Databricks 자산 번들이란?을 참조하세요.

Notebook 외에도 Azure Databricks 작업은 예상대로 작동하기 위해 라이브러리에 따라 달라질 수 있습니다. 로컬 개발을 위한 Databricks 자산 번들 종속성은 번들 프로젝트의 루트에 있는 requirements*.txt 파일에 지정되지만 작업 작업 라이브러리 종속성은 번들 구성 파일에 선언되며 작업 작업 유형 사양의 일부로 필요한 경우가 많습니다.

번들은 Azure Databricks 작업에 대한 다음 라이브러리 종속성을 지원합니다.

  • Python 휠 파일
  • JAR 파일(Java 또는 Scala)
  • PyPI, Maven 또는 CRAN 패키지

참고 항목

라이브러리가 지원되는지 여부는 작업 및 라이브러리 원본에 대한 클러스터 구성에 따라 달라집니다. 전체 라이브러리 지원 정보는 라이브러리를 참조 하세요.

Python 휠 파일

작업 작업에 libraries Python 휠 파일을 추가하려면 설치할 각 라이브러리에 대한 매핑을 지정 whl 합니다. 작업 영역 파일, Unity 카탈로그 볼륨, 클라우드 개체 스토리지 또는 로컬 파일 경로에서 휠 파일을 설치할 수 있습니다.

Important

Databricks Runtime 14.3 LTS 이하를 사용하는 경우 DBFS에서 라이브러리를 설치할 수 있습니다. 그러나 모든 작업 영역 사용자는 DBFS에 저장된 라이브러리 파일을 수정할 수 있습니다. Azure Databricks 작업 영역에서 라이브러리의 보안을 강화하기 위해 DBFS 루트에 라이브러리 파일을 저장하는 것은 기본적으로 Databricks Runtime 15.1 이상에서 사용되지 않으며 비활성화됩니다. DBFS 루트에 라이브러리 저장이 사용되지 않고 기본적으로 사용하지 않도록 설정됨을 참조하세요.

대신 Databricks 는 Python 라이브러리, JAR 파일 및 Spark 커넥터를 포함한 모든 라이브러리를 작업 영역 파일 또는 Unity 카탈로그 볼륨에 업로드하거나 라이브러리 패키지 리포지토리를 사용하는 것이 좋습니다 . 워크로드가 이러한 패턴을 지원하지 않는 경우 클라우드 개체 스토리지에 저장된 라이브러리를 사용할 수도 있습니다.

다음 예제에서는 작업 태스크에 대해 3개의 Python 휠 파일을 설치하는 방법을 보여줍니다.

  • 첫 번째 Python 휠 파일은 이전에 Azure Databricks 작업 영역에 업로드되었거나 매핑sync항목으로 include 추가되었으며 번들 구성 파일과 동일한 로컬 폴더에 있습니다.
  • 두 번째 Python 휠 파일은 Azure Databricks 작업 영역의 지정된 작업 영역 파일 위치에 있습니다.
  • 세 번째 Python 휠 파일은 이전에 Azure Databricks 작업 영역에 명명된 my-volume 볼륨에 업로드되었습니다.
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 파일

작업 태스크 libraries 에 JAR 파일을 추가하려면 설치할 각 라이브러리에 대한 매핑을 지정 jar 합니다. 작업 영역 파일, Unity 카탈로그 볼륨, 클라우드 개체 스토리지 또는 로컬 파일 경로에서 JAR을 설치할 수 있습니다.

Important

Databricks Runtime 14.3 LTS 이하를 사용하는 경우 DBFS에서 라이브러리를 설치할 수 있습니다. 그러나 모든 작업 영역 사용자는 DBFS에 저장된 라이브러리 파일을 수정할 수 있습니다. Azure Databricks 작업 영역에서 라이브러리의 보안을 강화하기 위해 DBFS 루트에 라이브러리 파일을 저장하는 것은 기본적으로 Databricks Runtime 15.1 이상에서 사용되지 않으며 비활성화됩니다. DBFS 루트에 라이브러리 저장이 사용되지 않고 기본적으로 사용하지 않도록 설정됨을 참조하세요.

대신 Databricks 는 Python 라이브러리, JAR 파일 및 Spark 커넥터를 포함한 모든 라이브러리를 작업 영역 파일 또는 Unity 카탈로그 볼륨에 업로드하거나 라이브러리 패키지 리포지토리를 사용하는 것이 좋습니다 . 워크로드가 이러한 패턴을 지원하지 않는 경우 클라우드 개체 스토리지에 저장된 라이브러리를 사용할 수도 있습니다.

다음 예제에서는 이전에 Azure Databricks 작업 영역에 명명 my-volume 된 볼륨에 업로드된 JAR 파일을 설치하는 방법을 보여 줍니다.

resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar

PyPi 패키지

PyPI 패키지를 작업 작업 정의에 추가하려면 다음에서 libraries설치할 각 PyPI 패키지에 대한 매핑을 지정 pypi 합니다. 각 매핑에 대해 다음을 지정합니다.

  • 의 경우 package설치할 PyPI 패키지의 이름을 지정합니다. 정확한 버전 사양(선택 사항)도 지원됩니다.
  • 필요에 따라 repoPyPI 패키지를 찾을 수 있는 리포지토리를 지정합니다. 지정하지 않으면 기본 pip 인덱스가 사용됩니다(https://pypi.org/simple/).

다음 예제에서는 두 개의 PyPI 패키지를 설치하는 방법을 보여 줍니다.

  • 첫 번째 PyPI 패키지는 지정된 패키지 버전과 기본 pip 인덱스가 사용됩니다.
  • 두 번째 PyPI 패키지는 지정된 패키지 버전과 명시적으로 지정된 pip 인덱스입니다.
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/

Maven 패키지

작업 작업 정의에 Maven 패키지를 추가하려면 다음에서 libraries설치할 각 Maven 패키지에 대한 매핑을 지정 maven 합니다. 각 매핑에 대해 다음을 지정합니다.

  • 의 경우 coordinates패키지에 대한 Gradle 스타일 Maven 좌표를 지정합니다.
  • 필요에 따라 repoMaven 패키지를 설치할 Maven 리포지토리를 지정합니다. 생략하면 Maven 중앙 리포지토리와 Spark 패키지 리포지토리가 모두 검색됩니다.
  • 필요에 따라 exclusions명시적으로 제외할 종속성을 지정합니다. Maven 종속성 제외를 참조 하세요.

다음 예제에서는 두 개의 Maven 패키지를 설치하는 방법을 보여 줍니다.

  • 첫 번째 Maven 패키지는 지정된 패키지 좌표를 사용하고 Maven 중앙 리포지토리와 Spark 패키지 리포지토리 모두에서 이 패키지를 검색합니다.
  • 두 번째 Maven 패키지는 지정된 패키지 좌표를 사용하고, Maven 중앙 리포지토리에서만 이 패키지를 검색하며, 지정된 패턴과 일치하는 이 패키지의 종속성을 포함하지 않습니다.
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*