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 패키지의 이름을 지정합니다. 정확한 버전 사양(선택 사항)도 지원됩니다. - 필요에 따라
repo
PyPI 패키지를 찾을 수 있는 리포지토리를 지정합니다. 지정하지 않으면 기본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*