다음을 통해 공유


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

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

노트북 및 원본 파일 외에도, 작업이 예상대로 수행되려면 라이브러리에 의존할 가능성이 큽니다. 라이브러리 종속성은 번들 구성 파일에 선언되며 작업 작업 유형 사양의 일부로 필요한 경우가 많습니다.

번들들은 다음 라이브러리 의존성을 지원합니다.

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

Python의 경우 파일에서 requirements.txt 작업 종속성을 지정하고 이를 번들에 포함할 수도 있습니다. Python requirements.txt참조하세요.

비고

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

Python 휠 파일

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

중요

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 작업 영역에 업로드되었거나 매핑include 항목sync으로 추가되었으며, 번들 구성 파일과 동일한 로컬 폴더에 있습니다.
  • 두 번째 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 파일(Java 또는 Scala)

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

중요

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

JAR을 빌드하고 배포하는 구성의 예는 JAR 파일을 Unity 카탈로그에 업로드하는 번들을 참조하세요. Scala JAR을 빌드하고 배포하는 번들 프로젝트를 만드는 자습서는 Databricks 자산 번들을 사용하여 Scala JAR 빌드를 참조하세요.

PyPi 패키지

PyPI 패키지를 작업 태스크 정의에 추가하려면 설치할 각 PyPI 패키지에 대한 매핑을 libraries에서 지정하십시오 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 좌표를 지정합니다.
  • 필요에 따라, repo에서 Maven 패키지를 설치할 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*

Python requirements.txt

Python 라이브러리 종속성은 작업 작업 정의의 일부로 포함된 파일에 지정할 requirements*.txt 수도 있습니다. 파일의 경로는 로컬 경로, 작업 영역 경로 또는 Unity 카탈로그 볼륨 경로일 수 있습니다.

resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - requirements: ./local/path/requirements.txt