Notebook 범위의 Python 라이브러리
Notebook 범위 라이브러리를 사용하면 Notebook에 특정한 사용자 지정 Python 환경을 만들기, 수정, 저장, 재사용 및 공유할 수 있습니다. Notebook 범위 라이브러리를 설치하면 현재 Notebook 및 해당 Notebook과 연결된 모든 작업만 해당 라이브러리에 액세스할 수 있습니다. 동일한 클러스터에 연결된 다른 Notebooks는 영향을 받지 않습니다.
Notebook 범위 라이브러리는 세션 간에 지속되지 않습니다. 각 세션이 시작될 때 또는 Notebook이 클러스터에서 분리될 때마다 Notebook 범위 라이브러리를 다시 설치해야 합니다.
Databricks는 매직 명령을 사용하여 %pip
Notebook 범위 Python 라이브러리를 설치하는 것이 좋습니다.
작업으로 예약된 Notebook에서 사용할 %pip
수 있습니다. Scala, SQL 또는 R Notebook에서 Python 환경을 관리해야 하는 경우 매직 명령을 함께 %pip
사용합니다%python
.
Notebook 범위 라이브러리 설치로 작업할 때 드라이버 노드에 더 많은 트래픽이 발생할 수 있습니다. Notebook 범위 라이브러리로 작업할 때 드라이버 노드의 규모는 얼마나 커야 하나요?
클러스터에 연결된 모든 Notebook에 대한 라이브러리를 설치하려면 클러스터 라이브러리를 사용합니다. 클러스터 라이브러리를 참조하세요.
Databricks에서 Python 라이브러리를 설치하는 데 사용할 수 있는 옵션에 대한 포괄적인 개요는 Python 환경 관리를 참조하세요.
참고 항목
Databricks Runtime 10.4 LTS 이하에서 (레거시) Azure Databricks 라이브러리 유틸리티를 사용할 수 있습니다. 라이브러리 유틸리티는 Databricks 런타임 ML이 아닌 Databricks 런타임에서만 지원됩니다. 라이브러리 유틸리티(dbutils.library)(레거시)를 참조하세요.
%pip
명령을 사용하여 라이브러리 관리
%pip
명령은 pip 명령과 동일하며 동일한 API를 지원합니다. 다음 섹션에서는 %pip
명령을 사용하여 환경을 관리하는 방법의 예를 보여 줍니다. pip
를 사용하여 Python 패키지를 설치하는 방법에 대한 자세한 내용은 pip 설치 설명서 및 관련 페이지를 참조하세요.
Important
- Databricks Runtime 13.0
%pip
명령부터 Python 프로세스를 자동으로 다시 시작하지는 않습니다. 새 패키지를 설치하거나 기존 패키지를 업데이트하는 경우 새 패키지를 확인하는 데 사용해야dbutils.library.restartPython()
할 수 있습니다. Azure Databricks에서 Python 프로세스 다시 시작을 참조하세요. - Databricks Runtime 12.2 LTS 이하에서 Databricks는 Notebook의 시작 부분에 모든
%pip
명령을 배치하는 것이 좋습니다. Notebook 상태는 환경을 수정하는 모든%pip
명령 후에 다시 설정됩니다. Notebook에서 Python 메서드 또는 변수를 만든 다음 이후 셀에서%pip
명령을 사용하면 메서드나 변수가 손실됩니다. %pip
를 사용하여 핵심 Python 패키지(예: IPython)를 업그레이드, 수정 또는 제거하면 일부 기능이 예상대로 작동하지 않을 수 있습니다. 이러한 문제가 발생하면 Notebook을 분리했다가 다시 연결하거나 클러스터를 다시 시작하여 환경을 다시 설정합니다.
%pip
를 사용하여 라이브러리 설치
%pip install matplotlib
를 사용하여 Python 휠 패키지 설치 %pip
%pip install /path/to/my_package.whl
%pip
를 사용하여 라이브러리 제거
참고 항목
Databricks 런타임 릴리스 정보 버전 및 호환성 또는 클러스터 라이브러리로 설치된 라이브러리에 포함된 라이브러리는 제거할 수 없습니다. Databricks Runtime에 포함된 버전이나 클러스터에 설치된 것과 다른 라이브러리 버전을 설치한 경우 %pip uninstall
을 사용하여 라이브러리를 Databricks Runtime의 기본 버전이나 클러스터에 설치된 버전으로 되돌릴 수 있지만 %pip
명령을 사용하여 Databricks Runtime에 포함되거나 클러스터에 설치된 라이브러리 버전을 제거할 수 없습니다.
%pip uninstall -y matplotlib
-y
옵션은 필수입니다.
%pip
를 사용하여 버전 제어 시스템에서 라이브러리 설치
%pip install git+https://github.com/databricks/databricks-cli
URL에 매개 변수를 추가하여 버전 또는 git 하위 디렉터리와 같은 항목을 지정할 수 있습니다. 자세한 내용과 다른 버전 제어 시스템 사용 예는 VCS 지원을 참조하세요.
%pip
를 사용하여 Databricks 보안 비밀에서 관리하는 자격 증명으로 프라이빗 패키지 설치
Pip는 Nexus 및 Artifactory와 같은 프라이빗 버전 제어 시스템 및 프라이빗 패키지 리포지토리를 포함하여 기본 인증으로 프라이빗 원본에서 패키지 설치를 지원합니다. 비밀 관리는 인증 토큰과 비밀을 저장할 수 있는 Databricks Secrets API를 통해 사용할 수 있습니다. DBUtils API를 사용하여 Notebook의 보안 비밀에 액세스합니다. 매직 명령에서 $variables
를 사용할 수 있습니다.
프라이빗 리포지토리에서 패키지를 설치하려면 --index-url
옵션을 사용하여 리포지토리 URL을 %pip install
에 지정하거나 ~/.pip/pip.conf
의 pip
구성 파일에 추가합니다.
token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://<user>:$token@<your-package-repository>.com/<path/to/repo> <package>==<version> --extra-index-url https://pypi.org/simple/
마찬가지로 매직 명령과 함께 비밀 관리를 사용하여 버전 제어 시스템에서 프라이빗 패키지를 설치할 수 있습니다.
token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://<user>:$token@<gitprovider>.com/<path/to/repo>
%pip
를 사용하여 DBFS에서 패키지 설치
Important
모든 작업 영역 사용자는 DBFS에 저장된 파일을 수정할 수 있습니다. Azure Databricks는 작업 영역 또는 Unity 카탈로그 볼륨에 파일을 저장하는 것이 좋습니다.
%pip
를 사용하여 DBFS에 저장된 프라이빗 패키지를 설치할 수 있습니다.
DBFS에 파일을 업로드하면 파일 이름이 자동으로 변경되어 공백, 마침표 및 하이픈이 밑줄로 바뀝니다. Python 휠 파일 pip
의 경우 파일 이름이 버전에서 마침표(예: 0.1.0)와 공백 또는 밑줄 대신 하이픈을 사용해야 하므로 이러한 파일 이름은 변경되지 않습니다.
%pip install /dbfs/mypackage-0.0.1-py3-none-any.whl
를 사용하여 볼륨에서 패키지 설치 %pip
Important
이 기능은 공개 미리 보기 상태입니다.
Databricks Runtime 13.3 LTS 이상을 사용하면 볼륨에 저장된 프라이빗 패키지를 설치하는 데 사용할 %pip
수 있습니다.
볼륨에 파일을 업로드하면 파일의 이름이 자동으로 바뀌고 공백, 마침표 및 하이픈이 밑줄로 바뀝니다. Python 휠 파일 pip
의 경우 파일 이름이 버전에서 마침표(예: 0.1.0)와 공백 또는 밑줄 대신 하이픈을 사용해야 하므로 이러한 파일 이름은 변경되지 않습니다.
%pip install /Volumes/<catalog>/<schema>/<path-to-library>/mypackage-0.0.1-py3-none-any.whl
작업 영역 파일로 저장된 패키지 설치 %pip
Databricks Runtime 11.3 LTS 이상을 사용하면 %pip
작업 영역 파일로 저장된 프라이빗 패키지를 설치할 수 있습니다.
%pip install /Workspace/<path-to-whl-file>/mypackage-0.0.1-py3-none-any.whl
요구 사항 파일에 라이브러리 저장
%pip freeze > /Workspace/shared/prod_requirements.txt
파일 경로의 모든 하위 디렉터리가 이미 있어야 합니다. %pip freeze > /Workspace/<new-directory>/requirements.txt
를 실행하는 경우 /Workspace/<new-directory>
디렉터리가 아직 없으면 명령이 실패합니다.
요구 사항 파일을 사용하여 라이브러리 설치
요구 사항 파일에는 pip
를 사용하여 설치할 패키지 목록이 포함되어 있습니다. 요구 사항 파일을 사용하는 예는 다음과 같습니다.
%pip install -r /Workspace/shared/prod_requirements.txt
requirements.txt
파일에 대한 자세한 내용은 요구 사항 파일 형식을 참조하세요.
Notebook 범위 라이브러리로 작업할 때 드라이버 노드는 얼마나 커야 하나요?
Notebook 범위 라이브러리를 사용하면 실행기 노드에서 환경을 일관되게 유지하기 위해 작동하므로 드라이버 노드에 더 많은 트래픽이 발생할 수 있습니다.
10개 이상의 노드가 있는 클러스터를 사용하는 경우 Databricks는 드라이버 노드에 대한 최소 요구 사항으로 다음 사양을 권장합니다.
- 100노드 CPU 클러스터의 경우 Standard_DS5_v2를 사용합니다.
- 10노드 GPU 클러스터의 경우 Standard_NC12를 사용합니다.
더 큰 클러스터의 경우 더 큰 드라이버 노드를 사용합니다.
%sh pip
, !pip
또는 pip
를 사용할 수 있나요? 차이점은 무엇인가요?
%sh
및 !
는 Notebook에서 셸 명령을 실행합니다. 전자는 Databricks 보조 매직 명령이고 후자는 IPython의 기능입니다. pip
는 automagic이 사용하도록 설정된 경우 %pip
의 줄임말이며 Azure Databricks Python Notebooks의 기본값입니다.
Databricks Runtime 11.3 LTS 이상 %pip
%sh pip
!pip
에서 모든 라이브러리를 Notebook 범위 Python 라이브러리로 설치합니다. Databricks Runtime 10.4 LTS 이하에서는 %pip
또는 pip
만 사용하여 Notebook 범위 라이브러리를 설치하는 것이 좋습니다. %sh pip
및 !pip
의 동작은 Databricks Runtime 10.4 LTS 이하에서 일관되지 않습니다.
알려진 문제
- Databricks Runtime 9.1 LTS에서 Notebook 범위 라이브러리는 일괄 처리 스트리밍 작업과 호환되지 않습니다. Databricks에서는 클러스터 라이브러리 또는 IPython 커널을 대신 사용하는 것이 좋습니다.