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 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는 NexusArtifactory와 같은 프라이빗 버전 제어 시스템 및 프라이빗 패키지 리포지토리를 포함하여 기본 인증으로 프라이빗 원본에서 패키지 설치를 지원합니다. 비밀 관리는 인증 토큰과 비밀을 저장할 수 있는 Databricks Secrets API를 통해 사용할 수 있습니다. DBUtils API를 사용하여 Notebook의 보안 비밀에 액세스합니다. 매직 명령에서 $variables를 사용할 수 있습니다.

프라이빗 리포지토리에서 패키지를 설치하려면 --index-url 옵션을 사용하여 리포지토리 URL을 %pip install에 지정하거나 ~/.pip/pip.confpip 구성 파일에 추가합니다.

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의 기능입니다. pipautomagic이 사용하도록 설정된 경우 %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 커널을 대신 사용하는 것이 좋습니다.