다음을 통해 공유


Visual Studio Code용 Databricks 확장에 Databricks 커넥트 사용하여 코드 디버그

이 문서에서는 Visual Studio Code용 Databricks 확장에서 Databricks 커넥트 통합을 사용하여 코드를 디버그하는 방법을 설명합니다. Visual Studio Code용 Databricks 확장이란?을 참조하세요.

이 정보는 Visual Studio Code용 Databricks 확장을 이미 설치하고 설정했다고 가정합니다. Visual Studio Code용 Databricks 확장 설치를 참조하세요.

참고 항목

이 기능은 실험적 기능입니다.

Visual Studio Code용 Databricks 확장 내에서 Databricks 커넥트 통합은 Databricks 클라이언트 통합 인증 표준의 일부만 지원합니다. 자세한 내용은 VS Code용 Databricks 확장에 대한 인증 설정을 참조 하세요.

Visual Studio Code용 Databricks 확장에는 Databricks 커넥트 포함됩니다. Visual Studio Code용 Databricks 확장 내에서 Databricks 커넥트 사용하여 개별 Python() 파일 및 Python Jupyter Notebook(.py.ipynb)의 단계별 디버깅을 실행하고 수행할 수 있습니다. Visual Studio Code용 Databricks 확장에는 Databricks Runtime 13.0 이상용 Databricks 커넥트 포함됩니다. 이전 버전의 Databricks 커넥트 지원되지 않습니다.

요구 사항

Visual Studio Code용 Databricks 확장 내에서 Databricks 커넥트 사용하려면 먼저 Databricks 커넥트 요구 사항을 충족해야 합니다. 이러한 요구 사항에는 Unity 카탈로그로 사용하도록 설정된 작업 영역, Databricks Runtime 13.0 이상을 실행하는 클러스터 및 단일 사용자 또는 공유의 클러스터 액세스 모드가 있는 클러스터, 클러스터에 설치된 Python의 주 버전 및 부 버전과 일치하는 Python의 로컬 버전이 포함됩니다.

1단계: Python 가상 환경 만들기

Python 코드 프로젝트에 대한 Python 가상 환경을 만들고 활성화합니다. Python 가상 환경은 코드 프로젝트가 호환되는 버전의 Python 및 Python 패키지(이 경우 Databricks 커넥트 패키지)를 사용하는지 확인하는 데 도움이 됩니다. 이 문서의 지침과 예제는 Python 가상 환경에 대한 venv 또는 를 사용합니다. Databricks는 Conda와 같은 다른 유형의 Python 가상 환경에서 Databricks 커넥트 패키지를 완전히 테스트하지 않았습니다.

를 사용하여 Python 가상 환경 만들기 venv

  1. Python 코드 프로젝트의 루트 디렉터리로 설정된 Visual Studio Code 터미널(터미널 보기>)에서 가상 환경에 Python을 사용하도록 지시 venv 한 다음, 다음 명령을 실행하여 Python 코드 프로젝트의 루트 디렉터리 내에 명명된 .venv 숨겨진 디렉터리에 가상 환경의 지원 파일을 만듭니다.

    # Linux and macOS
    python3.10 -m venv ./.venv
    # Windows
    python3.10 -m venv .\.venv
    

    이전 명령은 Databricks Runtime 13.0에서 사용하는 Python의 주 버전 및 부 버전과 일치하는 Python 3.10을 사용합니다. 클러스터의 설치된 Python 버전과 일치하는 Python의 주 버전과 부 버전을 사용해야 합니다.

  2. Visual Studio Code에 "새 환경이 만들어진 것을 확인했습니다. 작업 영역 폴더에 대해 선택하시겠습니까?"를 클릭합니다.

  3. 가상 환경을 활성화하는 데 사용합니다 venv . 운영 체제 및 터미널 유형에 따라 사용할 올바른 명령에 대한 venv 설명서를 참조하세요. 예를 들어 macOS에서 다음을 실행합니다 zsh.

    source ./.venv/bin/activate
    

    가상 환경의 이름(예 .venv: )이 터미널 프롬프트 바로 앞에 괄호로 표시되면 가상 환경이 활성화된다는 것을 알 수 있습니다.

    언제든지 가상 환경을 비활성화하려면 명령을 deactivate실행합니다.

    터미널 프롬프트 직전에 가상 환경의 이름이 더 이상 괄호 안에 표시되지 않으면 가상 환경이 비활성화됨을 알 수 있습니다.

2단계로 건너뛰기: Python 코드를 업데이트하여 디버깅 컨텍스트를 설정합니다.

시를 사용하여 Python 가상 환경 만들기

  1. 아직 설치하지 않은 경우 시를 설치합니다.

  2. Visual Studio Code 터미널(터미널 보기>)에서 기존 Python 코드 프로젝트의 루트 디렉터리로 설정된 다음 명령을 실행하여 시용 Python 코드 프로젝트를 초기화하도록 지시 poetry 합니다.

    poetry init
    
  3. 시는 완료할 수 있는 몇 가지 프롬프트를 표시합니다. 이러한 프롬프트는 Visual Studio Code용 Databricks 확장 또는 Databricks 커넥트 관련되지 않습니다. 이러한 프롬프트에 대한 자세한 내용은 init를 참조하세요.

  4. 프롬프트를 완료하면 시가 pyproject.toml Python 프로젝트에 파일을 추가합니다. 파일에 대한 pyproject.toml 자세한 내용은 pyproject.toml 파일을 참조하세요.

  5. Visual Studio Code 터미널이 여전히 Python 코드 프로젝트의 루트 디렉터리로 설정된 상태에서 파일을 읽고pyproject.toml, 종속성을 확인하고, 설치하고, 종속성을 잠그는 파일을 만들고poetry.lock, 마지막으로 가상 환경을 만들도록 지시 poetry 합니다. 이렇게 하려면 다음 명령을 실행합니다.

    poetry install
    
  6. Visual Studio Code에 다음과 같이 이 Python 프로젝트의 가상 환경에 포함된 Python 인터프리터를 사용하도록 지시합니다.

    1. 프로젝트의 루트 디렉터리에서 다음 명령을 실행하여 이 Python 프로젝트의 가상 환경에 있는 Python 인터프리터의 전체 경로를 찾습니다.

      poetry env info
      
    2. 필드의 출력에 Virtualenv > Executable 표시되는 전체 경로(예: 포함된 전체 경로)를 복사합니다 pypoetry/virtualenvs.

    3. 명령 팔레트(명령 팔레트 보기>)에서 명령을 >Python: Select Interpreter입력합니다.

    4. 방금 복사한 Python 인터프리터의 전체 경로를 입력합니다.

  7. Visual Studio Code 터미널이 여전히 Python 코드 프로젝트의 루트 디렉터리로 설정된 상태에서 가상 환경을 활성화하고 셸을 입력하도록 지시 poetry 합니다. 이렇게 하려면 다음 명령을 실행합니다.

    poetry shell
    

    가상 환경이 활성화되고 가상 환경의 이름이 터미널 프롬프트 바로 앞에 괄호로 표시될 때 셸이 입력된다는 것을 알 수 있습니다.

    가상 환경을 비활성화하고 언제든지 셸을 종료하려면 명령을 exit실행합니다.

    터미널 프롬프트 직전에 가상 환경의 이름이 더 이상 괄호 안에 표시되지 않을 때 셸을 종료했음을 알 수 있습니다.

    시 가상 환경을 만들고 관리하는 방법에 대한 자세한 내용은 환경 관리를 참조 하세요.

2단계: 디버깅 컨텍스트를 설정하도록 Python 코드 업데이트

Databricks 커넥트 클러스터 간에 디버깅 컨텍스트를 설정하려면 Python 코드가 호출DatabricksSession.builder.getOrCreate()하여 클래스를 DatabricksSession 초기화해야 합니다.

클래스를 초기화 DatabricksSession 할 때 작업 영역의 인스턴스 이름, 액세스 토큰 또는 클러스터의 ID 및 포트 번호와 같은 설정을 지정할 필요가 없습니다. Databricks 커넥트 이 문서의 앞부분에서 Visual Studio Code용 Databricks 확장을 통해 이미 제공한 구성 세부 정보에서 이 정보를 가져옵니다.

클래스 초기화 DatabricksSession 에 대한 자세한 내용은 Databricks 커넥트 코드 예제를 참조하세요.

Important

Visual Studio Code용 Databricks 확장을 사용하여 인증 유형을 개인 액세스 토큰으로 설정하는 경우 확장은 Databricks 커넥트 사용할 디버깅 컨텍스트 설정을 사용하여 관련 SPARK_REMOTE 환경 변수를 설정합니다. 이러한 디버깅 컨텍스트 설정에는 관련 작업 영역 인스턴스 이름, 개인 액세스 토큰 및 클러스터 ID가 포함됩니다.

Databricks 커넥트 개인 액세스 토큰 인증과 함께 SPARK_REMOTE 또는 SparkSession 클래스를 사용하여 DatabricksSession 프로그래밍 방식으로 디버깅 컨텍스트를 빠르고 쉽게 설정할 수 있습니다. 지원되는 다른 Azure Databricks 인증 유형의 경우 클래스만 DatabricksSession 사용하여 디버깅 컨텍스트를 설정할 수 있습니다.

자세한 내용은 Databricks 커넥트 설명서에서 클라이언트 설정을 참조하세요.

3단계: Databricks 커넥트 사용

확장이 열리고 코드 프로젝트에 대해 작업 영역 섹션이 구성된 상태에서 다음을 수행합니다.

  1. Visual Studio Code 상태 표시줄에서 빨간색 Databricks 커넥트 사용 안 함 단추를 클릭합니다.

  2. 확장에 클러스터 섹션이 아직 구성되지 않은 경우 다음 메시지가 나타납니다. "Databricks 커넥트 사용하도록 클러스터를 연결하세요." 클러스터 연결을 클릭하고 Databricks 커넥트 요구 사항을 충족하는 클러스터를 선택합니다.

  3. 클러스터 섹션이 구성되었지만 클러스터가 Databricks 커넥트 호환되지 않는 경우 빨간색 Databricks 커넥트 사용 안 함 단추를 클릭하고 클러스터 연결을 클릭한 다음 호환되는 클러스터를 선택합니다.

  4. Databricks 커넥트 패키지(및 해당 종속성)가 아직 설치되지 않은 경우 다음과 같은 메시지가 나타납니다. "대화형 디버깅 및 자동 완성의 경우 Databricks 커넥트 필요합니다. 환경에 설치하시겠습니까 <environment-name>?" 설치를 클릭합니다.

  5. Visual Studio Code 상태 표시줄에 Databricks 커넥트 사용 단추가 나타납니다.

    빨간색 Databricks 커넥트 사용 안 함 단추가 계속 나타나면 해당 단추를 클릭하고 화면의 지침을 완료하여 Databricks 커넥트 사용 단추를 표시합니다.

  6. Databricks 커넥트 사용 단추가 나타나면 이제 Databricks 커넥트 사용할 준비가 되었습니다.

참고 항목

코드 프로젝트에서 Databricks 커넥트 사용하도록 확장의 동기화 대상 섹션을 구성할 필요가 없습니다.

시를 사용하는 경우 다음 명령을 실행하여 설치된 Databricks 커넥트 패키지(및 해당 종속성)와 파일을 pyproject.tomlpoetry.lock 동기화할 수 있습니다. 프로젝트의 Visual Studio Code용 Databricks 확장에서 설치한 패키지와 일치하는 Databricks 커넥트 패키지 버전으로 바꿔 13.3.2 야 합니다.

poetry add databricks-connect==13.3.2

4단계: Python 코드 실행 또는 디버그

코드 프로젝트에 Databricks 커넥트 사용하도록 설정한 후 다음과 같이 Python 파일 또는 Notebook을 실행하거나 디버그합니다.

Python(.py) 파일을 실행하거나 디버그하려면 다음을 수행합니다.

  1. 코드 프로젝트에서 실행하거나 디버그하려는 Python 파일을 엽니다.

  2. Python 파일 내에서 디버깅 중단점을 설정합니다.

  3. 파일 편집기의 제목 표시줄에서 재생(실행 또는 디버그) 아이콘 옆에 있는 드롭다운 화살표를 클릭합니다. 그런 다음, 드롭다운 목록에서 Python 파일 디버그를 선택합니다. 이 선택은 단계별 디버깅, 중단점, 조사식, 호출 스택 및 유사한 기능을 지원합니다. 이 선택은 Databricks 커넥트 사용하여 Python 코드를 로컬로 실행하고, 원격 작업 영역의 클러스터에서 PySpark 코드를 실행하고, 로컬 디버깅을 위해 Visual Studio Code로 원격 응답을 다시 보냅니다.

    참고 항목

    디버깅을 지원하지 않는 다른 선택 항목은 다음과 같습니다.

    • Python 파일을 실행하여 디버깅 지원 없이 Databricks 커넥트 사용하여 파일 또는 Notebook을 실행합니다. 이 옵션은 파일을 원격 작업 영역으로 보내고, 작업 영역의 원격 클러스터에서 파일의 Python 및 PySpark 코드를 실행하고, Visual Studio Code 터미널에 원격 응답을 보냅니다.
    • Databricks 에서 파일을 업로드하고 실행하여 파일을 원격 작업 영역으로 보내고, 작업 영역의 원격 클러스터에서 파일의 Python 및 PySpark 코드를 실행하고, Visual Studio Code 터미널에 원격 응답을 보냅니다. 이 선택은 Databricks 커넥트 사용하지 않습니다.
    • Databricks 에서 파일을 워크플로로 실행하여 파일을 원격 작업 영역으로 보내고, 자동화된 Azure Databricks 작업과 연결된 클러스터에서 파일의 Python 및 PySpark 코드를 실행하고, 결과를 Visual Studio Code의 편집기로 보냅니다. 이 선택은 Databricks 커넥트 사용하지 않습니다.

    Databricks 편집기 명령 0에서 파일 실행

    대화형 창에서 현재 파일 실행 옵션(사용 가능한 경우)은 특수 Visual Studio Code 대화형 편집기에서 로컬로 파일을 실행하려고 시도합니다. Databricks는 이 옵션을 권장하지 않습니다.

Python Jupyter Notebook을 실행하거나 디버그하려면(.ipynb):

  1. 코드 프로젝트에서 실행하거나 디버그하려는 Python Jupyter Notebook을 엽니다. Python 파일이 Jupyter Notebook 형식이고 확장 .ipynb명은 있는지 확인합니다.

    명령 팔레트 내에서 Create: New Jupyter Notebook 명령을 실행 >하여 새 Python Jupyter Notebook만들 수 있습니다.

  2. 모든 셀 실행을 클릭하여 디버깅하지 않고 모든 셀을 실행하거나, 을 실행하여 디버깅하지 않고 개별 해당 셀을 실행하거나, 줄별로 실행하여 Jupyter 패널에 변수 값이 표시되는 제한된 디버깅을 사용하여 개별 셀을 한 줄씩 실행합니다(열린 보기 Jupyter 보기 >>).

    개별 셀 내에서 전체 디버깅하려면 중단점을 설정한 다음 셀의 실행 단추 옆에 있는 메뉴에서 셀 디버그를 클릭합니다.

    이러한 옵션을 클릭하면 누락된 Python Jupyter Notebook 패키지 종속성을 설치하라는 메시지가 표시될 수 있습니다. 설치하려면 클릭하세요.

    자세한 내용은 VS Code의 Jupyter Notebook을 참조하세요.