다음을 통해 공유


기본 현재 작업 디렉터리가란?

이 문서에서는 Notebook 및 파일 실행에 대해 기본 CWD(현재 작업 디렉터리)가 작동하는 방식을 설명합니다.

참고 항목

Databricks Runtime 14.0 이상 및 기본 작업 영역 구성을 사용하여 작업 영역 전체에서 CWD(일관성) 동작을 더 많이 수행합니다.

Notebook 및 파일에서 로컬로 실행되는 코드에 대한 두 가지 기본 CWD 동작이 있습니다.

  1. CWD는 실행 중인 Notebook 또는 스크립트가 포함된 디렉터리를 반환합니다.
  2. CWD는 드라이버에 연결된 임시 스토리지 볼륨을 나타내는 디렉터리를 반환합니다.

이 CWD 동작은 Apache Spark를 사용하지 않는 Python 또는 R 코드를 비롯한 %sh 모든 코드에 영향을 줍니다. 동작은 코드 언어, Databricks 런타임 버전, 작업 영역 경로 및 작업 영역 관리자 구성에 따라 결정됩니다.

Scala 코드의 경우 CWD는 드라이버연결된 임시 스토리지입니다.

다른 모든 언어의 코드:

  • Databricks Runtime 14.0 이상에서 CWD는 실행 중인 Notebook 또는 스크립트를 포함하는 디렉터리입니다. 코드가 에 있는지 여부에 관계없이 마찬가지입니다 /Workspace/Repos.
  • Databricks Runtime 13.3 LTS 이하를 실행하는 Notebook의 경우 CWD는 코드가 다음 위치에 /Workspace/Repos있는지 여부에 따라 달라집니다.
  • 외부 경로에서 실행되는 코드의 /Workspace/Repos경우 CWD는 드라이버에 연결된 임시 스토리지 볼륨입니다.
  • 경로에서 /Workspace/Repos실행되는 코드의 경우 CWD는 관리자 구성 설정 및 클러스터 DBR 버전에 따라 달라집니다.
    • DBR 버전 8.4 이상으로 설정되거나 true설정된 dbr8.4+ 작업 영역 enableWorkspaceFilesystem 의 경우 CWD는 실행 중인 Notebook 또는 스크립트가 포함된 디렉터리입니다. 8.4 미만의 DBR 버전에서는 드라이버에 연결된 임시 스토리지 볼륨입니다.
    • DBR 버전 11.0 이상으로 설정된 dbr11.0+작업 영역 enableWorkspaceFilesystem 의 경우 CWD는 실행 중인 Notebook 또는 스크립트를 포함하는 디렉터리입니다. 11.0 미만의 DBR 버전에서는 드라이버에 연결된 임시 스토리지 볼륨입니다.
    • 설정된 false작업 영역 enableWorkspaceFilesystem 의 경우 CWD는 드라이버에 연결된 임시 스토리지 볼륨입니다.

코드에서 CWD 가져오기

파이프라인 Notebook에 대한 작업 영역 CWD를 얻으려면 .를 호출 os.getcwd()합니다. 를 사용하여 Notebook의 시작 부분에서 모듈(기본 Python 파일 시스템 상호 작용 모듈)을 import os가져와 os 야 합니다. 예시:

import os
...
cwd = os.getcwd()

파이프라인 Notebook의 시작 부분에서 호출 os.chdir('/path/to/dir') 하여 CWD를 설정할 수도 있습니다. WSFS를 사용하도록 설정된 작업 영역에서 Notebook을 실행하는 경우에만 CWD를 설정할 수 있습니다.

워크로드에 어떤 영향을 주나요?

워크로드에 가장 큰 영향은 파일 지원 및 위치와 관련이 있습니다.

  • Databricks Runtime 13.3 LTS 이하에서 외부 경로에서 실행되는 코드의 /Workspace/Repos경우 많은 코드 조각은 클러스터가 종료될 때 영구적으로 삭제되는 임시 스토리지 볼륨의 기본 위치에 데이터를 저장합니다.
  • Databricks Runtime 14.0 이상에서 이러한 작업의 기본 동작은 명시적으로 삭제될 때까지 지속되는 실행 중인 Notebook과 함께 저장된 작업 영역 파일을 만듭니다.

작업 영역 파일에 내재된 성능 차이 및 기타 제한 사항에 대한 자세한 내용은 작업 영역 파일 작업을 참조하세요.

레거시 동작으로 되돌리기

Python 메서드 os.chdir()를 사용하여 모든 Notebook의 현재 작업 디렉터리를 변경할 수 있습니다. 각 Notebook이 드라이버에 연결된 임시 스토리지 볼륨에서 CWD를 사용하는지 확인하려면 각 Notebook의 첫 번째 셀에 다음 명령을 추가하고 다른 코드보다 먼저 실행할 수 있습니다.

import os

os.chdir("/tmp")