Databricks Notebook에서 코드 개발

이 페이지에서는 자동 완성, Python 및 SQL에 대한 자동 서식 지정, Notebook에서 Python과 SQL을 결합하고 Notebook 버전 기록을 추적하는 등 Databricks Notebook에서 코드를 개발하는 방법을 설명합니다.

자동 완성, 변수 선택, 다중 커서 지원 및 병렬 차이와 같은 편집기에서 사용할 수 있는 고급 기능에 대한 자세한 내용은 Databricks Notebook 및 파일 편집기 사용을 참조하세요.

Notebook 또는 파일 편집기를 사용하는 경우 Databricks Assistant를 사용하여 코드를 생성, 설명 및 디버그할 수 있습니다. 자세한 내용은 Databricks Assistant 사용을 참조하세요.

Databricks Notebook에는 Python Notebook용 기본 제공 대화형 디버거도 포함되어 있습니다. Databricks 대화형 디버거 사용을 참조하세요.

Databricks Assistant에서 코딩 도움말 보기

Databricks Assistant는 대화형 인터페이스를 사용하여 상호 작용할 수 있는 컨텍스트 인식 AI 도우미 Databricks 내에서 생산성을 높일 수 있습니다. 작업을 영어로 설명하고 도우미 Python 코드 또는 SQL 쿼리를 생성하고 복잡한 코드를 설명하고 오류를 자동으로 수정할 수 있습니다. 이 도우미 Unity 카탈로그 메타데이터를 사용하여 회사 전체의 테이블, 열, 설명 및 인기 있는 데이터 자산을 이해하여 개인 설정된 응답을 제공합니다.

Databricks Assistant는 다음 작업을 수행하는 데 도움이 될 수 있습니다.

  • 코드를 생성합니다.
  • 오류에 대한 수정 사항을 식별하고 제안하는 것을 포함하여 코드를 디버그합니다.
  • 코드를 변환하고 최적화합니다.
  • 코드를 설명합니다.
  • Azure Databricks 설명서에서 관련 정보를 찾을 수 있습니다.

Databricks Assistant를 사용하여 보다 효율적으로 코딩하는 방법에 대한 자세한 내용은 Databricks Assistant 사용을 참조하세요. Databricks Assistant에 대한 일반적인 내용은 DatabricksIQ 기반 기능을 참조 하세요.

편집을 위해 Notebook에 액세스

Notebook을 열려면 작업 영역 검색 함수를 사용하거나 작업 영역 브라우저를 사용하여 Notebook으로 이동하고 Notebook의 이름 또는 아이콘을 클릭합니다.

데이터 찾아보기

스키마 브라우저를 사용하여 Notebook에 사용할 수 있는 테이블 및 볼륨을 탐색합니다. Notebook의 왼쪽을 클릭하여 Notebook 데이터 아이콘 스키마 브라우저를 엽니다.

For you 단추는 현재 세션에서 사용했거나 이전에 즐겨찾기로 표시된 테이블만 표시합니다.

필터 상자에 텍스트를 입력하면 입력한 텍스트가 포함된 항목만 표시되도록 표시가 변경됩니다. 현재 열려 있거나 현재 세션에서 열려 있는 항목만 표시됩니다. 필터 상자는 Notebook에 사용할 수 있는 카탈로그, 스키마 및 테이블을 완전히 검색하지 않습니다.

케밥 메뉴를 열려 케밥 메뉴 면 다음과 같이 항목 이름 위에 커서를 놓습니다.

스키마 브라우저의 kebab 메뉴

항목이 테이블인 경우 다음을 수행할 수 있습니다.

  • 셀을 자동으로 만들고 실행하여 표에 있는 데이터의 미리 보기를 표시합니다. 표의 케밥 메뉴에서 새 셀에서 미리 보기를 선택합니다.
  • 카탈로그 탐색기에서 카탈로그, 스키마 또는 테이블을 봅니다. 케밥 메뉴에서 카탈로그 탐색기에서 열기를 선택합니다. 선택한 항목을 보여 주는 새 탭이 열립니다.
  • 카탈로그, 스키마 또는 테이블에 대한 경로를 가져옵니다. 복사 선택 ... 항목에 대한 케밥 메뉴의 경로 입니다.
  • 즐겨찾기에서 테이블을 추가합니다. 테이블의 케밥 메뉴에서 즐겨찾기로 테이블 추가를 선택합니다.

항목이 카탈로그, 스키마 또는 볼륨인 경우 항목의 경로를 복사하거나 카탈로그 탐색기에서 열 수 있습니다.

셀에 직접 테이블 또는 열 이름을 삽입하려면 다음을 수행합니다.

  1. 이름을 입력할 위치에 있는 셀에서 커서를 클릭합니다.
  2. 스키마 브라우저에서 테이블 이름 또는 열 이름 위로 커서를 이동합니다.
  3. 항목 이름 오른쪽에 표시되는 이중 화살표 이중 화살표를 클릭합니다.

바로 가기 키

바로 가기 키를 표시하려면 도움말 > 바로 가기 키를 선택합니다. 사용할 수 있는 바로 가기 키는 커서가 코드 셀(편집 모드)에 있는지, 아닌지(명령 모드)에 따라 달라집니다.

텍스트 찾기 및 바꾸기

Notebook 내에서 텍스트를 찾고 바꾸려면 편집 > 찾기 및 바꾸기를 선택합니다. 현재 일치 항목은 주황색으로 강조 표시되고 다른 모든 일치 항목은 노란색으로 강조 표시됩니다.

일치하는 텍스트

현재 일치 항목을 바꾸려면 바꾸기를 클릭합니다. Notebook의 모든 일치 항목을 바꾸려면 모두 바꾸기를 클릭합니다.

일치 항목 간에 이동하려면 이전다음 단추를 클릭합니다. Shift+Enter를 누르고 이전 일치 항목으로 이동하거나 Enter 키를 눌러 다음 일치 항목으로 이동할 수도 있습니다.

찾기 및 바꾸기 도구를 닫려면 esc 키를 클릭 삭제 아이콘 하거나 누릅니 .

변수 탐색기

Notebook UI에서 Python, Scala 및 R 변수를 직접 관찰할 수 있습니다. Databricks Runtime 12.2 LTS 이상의 Python의 경우 셀이 실행되면 변수가 업데이트됩니다. Scala, R 및 Databricks Runtime 11.3 LTS 이하의 Python의 경우 셀 실행이 완료된 후 변수가 업데이트됩니다.

변수 탐색기를 열려면 오른쪽 사이드바를 클릭합니다변수 탐색기 아이콘. 변수 탐색기가 열리고, 현재 Notebook에 정의된 각 변수에 대한 셰이프와 같은 값 및 데이터 형식이 표시됩니다. (셰이프를 계산하는 데 계산 비용이 많이 들 수 있으므로 PySpark 데이터 프레임의 모양은 '?'입니다.)

표시를 필터링하려면 검색 상자에 텍스트를 입력합니다. 입력할 때 목록이 자동으로 필터링됩니다.

전자 필기장 셀을 실행하면 변수 값이 자동으로 업데이트됩니다.

변수 탐색기 패널 예제

선택한 셀 실행

단일 셀 또는 셀 컬렉션을 실행할 수 있습니다. 단일 셀을 선택하려면 셀의 아무 곳이나 클릭합니다. 여러 셀을 선택하려면 MacOS 또는 Windows의 CommandCtrl 키를 누른 상태로 스크린샷과 같이 텍스트 영역 외부의 셀을 클릭합니다.

여러 셀을 선택하는 방법

선택한 셀을 실행하려면 선택한 셀 실행 실행을 > 선택합니다.

이 명령의 동작은 Notebook이 연결된 클러스터에 따라 달라집니다.

  • Databricks Runtime 13.3 LTS 이하를 실행하는 클러스터에서 선택한 셀은 개별적으로 실행됩니다. 셀에서 오류가 발생하면 후속 셀을 계속 실행합니다.
  • Databricks Runtime 14.0 이상을 실행하는 클러스터 또는 SQL 웨어하우스에서 선택한 셀이 일괄 처리로 실행됩니다. 오류가 발생하면 실행이 중지되며 개별 셀의 실행을 취소할 수 없습니다. 인터럽트 단추를 사용하여 모든 셀의 실행을 중지할 수 있습니다.

코드 모듈화

Important

이 기능은 공개 미리 보기 상태입니다.

Databricks Runtime 11.3 LTS 이상을 사용하면 Azure Databricks 작업 영역에서 소스 코드 파일을 만들고 관리한 다음 필요에 따라 이러한 파일을 Notebook으로 가져올 수 있습니다.

소스 코드 파일 작업에 대한 자세한 내용은 Databricks Notebook과 Python 및 R 모듈 작업 간에 코드 공유를 참조하세요.

선택한 텍스트 실행

Notebook 셀에서 코드 또는 SQL 문을 강조 표시하고 해당 선택 영역만 실행할 수 있습니다. 이 기능은 코드 및 쿼리를 빠르게 반복하려는 경우에 유용합니다.

  1. 실행하려는 줄을 강조 표시합니다.

  2. 실행 > 선택한 텍스트 실행을 선택하거나 바로 가기 키 Ctrl+Shift+Enter를 사용합니다. 강조 표시된 텍스트가 없으면 선택한 텍스트 실행이 현재 줄을 실행합니다.

    선택한 줄 실행

셀에서 혼합 언어를 사용하는 경우 선택 영역에 %<language> 줄을 포함해야 합니다.

선택한 텍스트 실행은 강조 표시된 선택 영역에 있는 경우 축소된 코드도 실행합니다.

%run, %pip%sh 같은 특수 셀 명령이 지원됩니다.

여러 출력 탭이 있는 셀(즉, 데이터 프로필 또는 시각화를 정의한 셀)에는 선택한 텍스트 실행을 사용할 수 없습니다.

코드 셀 서식 지정

Azure Databricks는 Notebook 셀에서 Python 및 SQL 코드의 서식을 쉽고 빠르게 지정할 수 있는 도구를 제공합니다. 이러한 도구는 코드의 서식을 유지하는 데 필요한 노력을 줄여 주며 여러 Notebook에서 동일한 코딩 표준을 적용해 줍니다.

Python 셀 서식 지정

Important

이 기능은 공개 미리 보기 상태입니다.

Azure Databricks는 Notebook 내에서 Black을 사용하여 Python 코드 서식 지정을 지원합니다. Notebook은 blacktokenize-rt Python 패키지가 설치된 클러스터에 연결되어야 하며 Black 포맷터는 Notebook이 연결된 클러스터에서 실행됩니다.

Databricks Runtime 11.3 LTS 이상에서 Azure Databricks는 사전 설치 blacktokenize-rt. 이러한 라이브러리를 설치하지 않고도 포맷터를 직접 사용할 수 있습니다.

Databricks Runtime 10.4 LTS 이하에서 Python 포맷터를 사용하려면 Notebook 또는 클러스터에 PyPI를 설치 black==22.3.0 하고 tokenize-rt==4.2.1 사용해야 합니다. Notebook에서 다음 명령을 실행할 수 있습니다.

%pip install black==22.3.0 tokenize-rt==4.2.1

또는 클러스터에 라이브러리를 설치할 수 있습니다.

라이브러리 설치에 대한 자세한 내용은 Python 환경 관리를 참조하세요.

Databricks Git 폴더의 파일 및 Notebook의 경우 파일에 따라 pyproject.toml Python 포맷터를 구성할 수 있습니다. 이 기능을 사용하려면 Git 폴더 루트 디렉터리에 파일을 만들고 pyproject.toml Black 구성 형식따라 구성합니다. 파일에서 [tool.black] 섹션을 편집합니다. 이 구성은 해당 Git 폴더의 파일 및 Notebook 서식을 지정할 때 적용됩니다.

Python 및 SQL 셀의 서식을 지정하는 방법

코드 서식을 지정하려면 Notebook에 대한 CAN EDIT 권한이 있어야 합니다.

서식 지정 도구는 다음과 같은 방법으로 트리거할 수 있습니다.

  • 단일 셀 서식 지정

    • 바로 가기 키: Cmd+Shift+F를 누릅니다.
    • 명령 상황에 맞는 메뉴:
      • SQL 셀 서식 지정: SQL 셀의 명령 바로 가기 드롭다운 메뉴에서 SQL 서식 지정을 선택합니다. 이 메뉴 항목은 SQL Notebook 셀 또는 %sql언어 매직이 있는 셀에서만 볼 수 있습니다.
      • Python 셀 서식 지정: Python 셀의 명령 컨텍스트 드롭다운 메뉴에서 Python 서식 지정을 선택합니다. 이 메뉴 항목은 Python Notebook 셀 또는 %python언어 매직이 있는 셀에서만 볼 수 있습니다.
    • Notebook 편집 메뉴: Python 또는 SQL 셀을 선택한 다음, 편집 > 셀 서식 지정을 선택합니다.
  • 여러 셀 서식 지정

    여러 셀을 선택한 다음 셀 서식 편집 > 을 선택합니다. 둘 이상의 언어로 된 셀을 선택한 경우 SQL 및 Python 셀의 서식만 지정됩니다. 여기에는 %sql%python을 사용하는 셀도 포함됩니다.

  • Notebook에서 모든 Python 및 SQL 셀의 서식 지정

    편집 > Notebook 서식 지정을 선택합니다. Notebook에 둘 이상의 언어가 포함된 경우 SQL 및 Python 셀의 서식만 지정됩니다. 여기에는 %sql%python을 사용하는 셀도 포함됩니다.

코드 서식 지정의 제한 사항

  • Black은 4칸 들여쓰기를 위해 PEP 8 표준을 적용합니다. 들여쓰기를 구성할 수는 없습니다.
  • SQL UDF 내에 포함된 Python 문자열의 서식 지정은 지원되지 않습니다. 마찬가지로, Python UDF 내에서 SQL 문자열의 서식 지정은 지원되지 않습니다.

버전 기록

Azure Databricks Notebook은 Notebook 버전 기록을 유지 관리하므로 Notebook의 이전 스냅샷을 보고 복원할 수 있습니다. 버전에 대해 주석 추가, 버전 복원 및 삭제, 버전 기록 지우기와 같은 작업을 수행할 수 있습니다.

Databricks의 작업을 원격 Git 리포지토리와 동기화할 수도 있습니다.

Notebook 버전에 액세스하려면 오른쪽 사이드바를 클릭합니다 버전 기록 아이콘 . Notebook 버전 기록이 나타납니다. 파일 > 버전 기록을 선택할 수도 있습니다.

주석 추가

최신 버전에 주석을 추가하려면 다음을 수행합니다.

  1. 버전을 클릭합니다.

  2. 지금 저장을 클릭합니다.

    주석 저장

  3. 전자 필기장 버전 저장 대화 상자에서 메모를 입력합니다.

  4. 저장을 클릭합니다. Notebook 버전이 입력한 주석과 함께 저장됩니다.

버전 복원

버전을 복원하려면 다음을 수행합니다.

  1. 버전을 클릭합니다.

  2. 이 버전 복원을 클릭합니다.

    버전 복원

  3. 확인을 클릭합니다. 선택한 버전이 Notebook의 최신 버전이 됩니다.

버전 삭제

버전 항목을 삭제하려면 다음을 수행합니다.

  1. 버전을 클릭합니다.

  2. 휴지통 아이콘 휴지통을 클릭합니다.

    버전 삭제

  3. 예, 지우겠습니다를 클릭합니다. 선택한 버전이 기록에서 삭제됩니다.

버전 기록 지우기

버전 기록을 지운 후에는 복구할 수 없습니다.

Notebook의 버전 기록을 지우려면 다음을 수행합니다.

  1. 파일 > 버전 기록 지우기를 선택합니다.
  2. 예, 지우겠습니다를 클릭합니다. Notebook 버전 기록이 지워집니다.

Notebook의 코드 언어

기본 언어 설정

Notebook의 기본 언어는 Notebook 이름 옆에 표시됩니다.

Notebook 기본 언어

기본 언어를 변경하려면 언어 단추를 클릭하고 드롭다운 메뉴에서 새 언어를 선택합니다. 기존 명령이 계속 작동하도록 하기 위해, 이전 기본 언어의 명령에 자동으로 언어 매직 명령 접두사가 추가됩니다.

언어 혼합

기본적으로 셀은 Notebook의 기본 언어를 사용합니다. 언어 단추를 클릭하고 드롭다운 메뉴에서 언어를 선택하여 셀의 기본 언어를 재정의할 수 있습니다.

셀 언어 드롭다운

또는 셀 시작 부분에서 언어 매직 명령 %<language>를 사용할 수 있습니다. 지원되는 매직 명령은 %python, %r, %scala, %sql입니다.

참고 항목

언어 매직 명령을 호출하면 명령이 Notebook의 실행 컨텍스트에서 REPL로 전송됩니다. 하나의 언어로 정의된 변수(및 이에 따라 해당 언어의 REPL로 정의된 변수)는 다른 언어의 REPL에서 사용할 수 없습니다. REPL은 DBFS의 파일, 개체 스토리지의 개체와 같은 외부 리소스를 통해서만 상태를 공유할 수 있습니다.

Notebook은 다음과 같은 보조 매직 명령도 지원합니다.

  • %sh: Allows Notebook에서 셸 코드를 실행할 수 있습니다. 셸 명령에 0이 아닌 종료 상태가 있는 경우 셀이 실패하도록 하려면 -e 옵션을 추가합니다. 이 명령은 Apache Spark 드라이버에서만 실행되며, 작업자에서는 실행되지 않습니다. 모든 노드에서 셸 명령을 실행하려면 init 스크립트를 사용합니다.
  • %fs: dbutils 파일 시스템 명령을 사용할 수 있습니다. 예를 들어, dbutils.fs.ls 명령을 사용하여 파일을 나열하려면 대신 %fs ls를 지정할 수 있습니다. 자세한 내용은 Azure Databricks의 파일 작업을 참조 하세요.
  • %md: 텍스트, 이미지, 수학 수식, 방정식을 포함하는 다양한 유형의 설명서를 포함할 수 있습니다. 다음 섹션을 확인하세요.

Python 명령에서 SQL 구문 강조 표시 및 자동 완성

구문 강조 표시 및 SQL 자동 완성spark.sql 명령과 같은 Python 명령 내에서 SQL을 사용할 때 사용할 수 있습니다.

Python을 사용하여 Python Notebook에서 SQL 셀 결과 살펴보기

SQL을 사용하여 데이터를 로드하고 Python을 사용하여 탐색할 수 있습니다. Databricks Python Notebook에서 SQL 언어 셀의 테이블 결과는 변수 _sqldf에 할당된 Python DataFrame으로 자동으로 제공됩니다.

Databricks Runtime 13.3 LTS 이상에서는 IPython의 출력 캐싱 시스템을 사용하여 DataFrame 결과에 액세스할 수도 있습니다. 프롬프트 카운터는 셀 결과의 맨 아래에 표시되는 출력 메시지에 나타납니다. 표시된 예제에서는 결과를 .로 Out[2]참조합니다.

참고 항목

  • 셀이 실행될 때마다 변수 _sqldf%sql 다시 할당할 수 있습니다. DataFrame 결과에 대한 참조가 손실되지 않도록 하려면 다음 %sql 셀을 실행하기 전에 새 변수 이름에 할당합니다.

    new_dataframe_name = _sqldf
    
  • 쿼리에서 매개 변수화에 위젯을 사용하는 경우 결과가 Python DataFrame으로 제공되지 않습니다.

  • 쿼리에서 CACHE TABLE 또는 UNCACHE TABLE 키워드를 사용하는 경우 결과가 Python DataFrame으로 제공되지 않습니다.

이 스크린샷은 예제를 보여줍니다.

sql 결과 데이터 프레임

병렬로 SQL 셀 실행

명령이 실행되고 Notebook이 대화형 클러스터에 연결된 동안 현재 명령과 동시에 SQL 셀을 실행할 수 있습니다. SQL 셀은 새로운 병렬 세션에서 실행됩니다.

셀을 병렬로 실행하려면 다음을 수행합니다.

  1. 을 실행합니다.

  2. 지금 실행을 클릭합니다. 셀이 즉시 실행됩니다.

    현재 실행 중인 셀과 병렬로 SQL 셀 실행

셀이 새 세션에서 실행되므로 임시 뷰, UDF 및 암시적 Python DataFrame (_sqldf)은 병렬로 실행되는 셀에 대해 지원되지 않습니다. 또한 기본 카탈로그 및 데이터베이스 이름은 병렬 실행 중에 사용됩니다. 코드가 다른 카탈로그 또는 데이터베이스의 테이블을 참조하는 경우 3개 수준 네임스페이스(catalog..schematable)를 사용하여 테이블 이름을 지정해야 합니다.

SQL 웨어하우스에서 SQL 셀 실행

SQL 분석에 최적화된 컴퓨팅 유형인 SQL 웨어하우스의 Databricks Notebook에서 SQL 명령을 실행할 수 있습니다. SQL 웨어하우스에서 Notebook 사용을 참조하세요.

이미지 표시

FileStore에 저장된 이미지를 표시하려면 다음 구문을 사용합니다.

%md
![test](files/image.png)

예를 들어, FileStore에 Databricks 로고 이미지 파일이 저장되어 있다고 가정하겠습니다.

dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png

Markdown 셀에 다음 코드를 포함하면

Markdown 셀의 이미지

이미지가 다음과 같이 셀 내에서 렌더링됩니다.

렌더링된 이미지

수학 방정식 표시

Notebook은 수학 수식 및 방정식을 표시하는 KaTeX를 지원합니다. 예를 들면 다음과 같습니다.

%md
\\(c = \\pm\\sqrt{a^2 + b^2} \\)

\\(A{_i}{_j}=B{_i}{_j}\\)

$$c = \\pm\\sqrt{a^2 + b^2}$$

\\[A{_i}{_j}=B{_i}{_j}\\]

다음과 같이 렌더링합니다.

렌더링된 수식 1

%md
\\( f(\beta)= -Y_t^T X_t \beta + \sum log( 1+{e}^{X_t\bullet\beta}) + \frac{1}{2}\delta^t S_t^{-1}\delta\\)

where \\(\delta=(\beta - \mu_{t-1})\\)

다음과 같이 렌더링합니다.

렌더링된 수식 2

HTML 포함

displayHTML 함수를 사용하여 Notebook에 HTML을 포함할 수 있습니다. 이 작업을 수행하는 방법의 예는 Notebook의 HTML, D3 및 SVG를 참조하세요.

참고 항목

displayHTML iframe은 databricksusercontent.com 도메인에서 제공되고, iframe 샌드박스는 allow-same-origin 특성을 포함합니다. databricksusercontent.com 는 브라우저에서 액세스할 수 있어야 합니다. 현재 회사 네트워크에서 차단된 경우 허용 목록에 추가해야 합니다.

Markdown 셀에서 상대 경로를 사용하여 다른 Notebook 또는 Markdown 셀에 연결할 수 있습니다. 앵커 태그의 href 특성을 $로 시작하고 Unix 파일 시스템의 패턴을 따르는 상대 경로로 지정합니다.

%md
<a href="$./myNotebook">Link to notebook in same folder as current notebook</a>
<a href="$../myFolder">Link to folder in parent folder of current notebook</a>
<a href="$./myFolder2/myNotebook2">Link to nested notebook</a>