Notebook에서 Spark 사용

완료됨

Python 또는 Scala 스크립트의 코드, JAR(Java 보관 파일)로 컴파일된 Java 코드 등 다양한 종류의 애플리케이션을 Spark에서 실행할 수 있습니다. Spark는 일반적으로 다음과 같은 두 가지 종류의 워크로드에서 사용됩니다.

  • 데이터를 수집, 정리, 변환하기 위한 일괄 처리 또는 스트림 처리 작업으로, 자동화된 파이프라인의 일부로 실행되는 경우가 많습니다.
  • 데이터를 검색, 분석, 시각화하는 대화형 분석 세션입니다.

Notebook 편집 및 코드 기본 사항

Databricks Notebook은 데이터 과학, 엔지니어링 및 분석을 위한 기본 작업 영역입니다. 코드 또는 서식이 지정된 텍스트(Markdown)를 포함할 수 있는 셀을 중심으로 빌드됩니다. 이 셀 기반 접근 방식을 사용하면 한 곳에서 작업을 쉽게 실험하고 테스트하고 설명할 수 있습니다. 단일 셀, 셀 그룹 또는 전체 노트북을 실행할 수 있으며, 실행된 셀 바로 아래에 테이블, 차트 또는 일반 텍스트와 같은 출력이 나타납니다. 전자 필기장을 정리하고 읽을 수 있도록 셀을 다시 정렬, 축소 또는 지울 수 있습니다.

노트북이 포함된 Azure Databricks의 스크린샷.

Databricks Notebook의 주요 강점은 다 언어 지원입니다. 기본값은 Python인 경우가 많지만 %sql 또는 %scala같은 매직 명령을 사용하여 동일한 Notebook 내에서 SQL, Scala 또는 R로 전환할 수 있습니다. 이러한 유연성은 SQL에서 ETL 논리를 작성하고, Python에서 기계 학습 코드를 작성한 다음, 하나의 워크플로에서 모두 R을 사용하여 결과를 시각화할 수 있습니다. 또한 Databricks는 자동 완성 및 구문 강조 표시를 제공하여 실수를 쉽게 포착하고 코딩 속도를 높일 수 있습니다.

코드를 실행하기 전에 Notebook을 클러스터에 연결해야 합니다. 연결된 클러스터가 없으면 코드 셀을 실행할 수 없습니다. Notebook 도구 모음에서 기존 클러스터를 선택하거나 새 클러스터를 만들 수 있으며 필요에 따라 Notebook을 쉽게 분리하고 다시 연결할 수 있습니다. 이 연결을 통해 Notebook에서 Azure Databricks의 분산 처리 능력을 활용할 수 있습니다.

Databricks 어시스턴트 사용

Databricks Assistant는 Notebook에 직접 기본 제공되는 AI 기반 코딩 도우미입니다. 목표는 Notebook 및 작업 영역의 컨텍스트를 활용하여 코드를 보다 효율적으로 작성, 이해 및 개선하는 데 도움이 되는 것입니다. 자연어 프롬프트에서 새 코드를 생성하고, 복잡한 논리를 설명하고, 오류 수정을 제안하고, 성능을 최적화하고, 가독성을 위해 코드를 리팩터링하거나 포맷할 수 있습니다. 따라서 Spark 또는 SQL을 학습하는 초보자뿐만 아니라 개발 속도를 높이고 반복적인 작업을 줄이려는 숙련된 사용자에게도 유용합니다.

도우미는 컨텍스트를 인식하므로 Notebook, 클러스터 및 데이터 환경에 대한 정보를 사용하여 맞춤형 제안을 제공할 수 있습니다. 예를 들어 작업 영역에 Unity 카탈로그가 설정된 경우 SQL 쿼리를 작성할 때 테이블 이름, 열 이름 및 스키마와 같은 메타데이터를 끌어올 수 있습니다. 이렇게 하면 "판매 테이블에서 지역별 평균 판매액 선택"과 같은 질문을 하고 실제 데이터 모델에 맞는 SQL 코드를 사용할 수 있습니다. 마찬가지로 Python에서는 메모리의 모든 함수 서명을 회수하지 않고도 데이터 변환 또는 Spark 작업을 만들도록 요청할 수 있습니다.

다음과 같은 두 가지 주요 방법으로 도우미와 상호 작용합니다.

  1. 자연어 프롬프트 - 채팅과 유사한 인터페이스에 일반 영어 지침을 입력할 수 있으며, 전자 필기장에도 코드를 삽입합니다.

  2. 슬래시 명령/explain, /fix, /optimize와 같은 빠른 명령으로 선택한 코드에서 작업할 수 있습니다. 예를 들어 /explain 복잡한 함수를 더 간단한 단계로 분할하고, /fix 구문 또는 런타임 오류를 해결하려고 시도할 수 있으며, 다시 분할 또는 효율적인 Spark 함수 사용과 /optimize 같은 성능 향상을 제안합니다.

Azure Databricks Notebook의 AI Assistant 스크린샷

강력한 기능은 편집 모드로, 도우미가 여러 셀에서 더 큰 구조적 변화를 제안할 수 있습니다. 예를 들어 반복 논리를 재사용 가능한 단일 함수로 리팩터링하거나 가독성을 높이기 위해 워크플로를 재구성할 수 있습니다. 항상 제어할 수 있습니다. 제안은 비인도적입니다. 즉, 전자 필기장 변경 내용을 적용하기 전에 검토하고 수락하거나 거부할 수 있습니다.

코드 공유 및 모듈화

중복을 방지하고 유지 관리를 개선하기 위해 Databricks는 Notebook에서 가져올 수 있는 작업 영역의 파일(예: .py 모듈)에 재사용 가능한 코드를 배치하도록 지원합니다. Notebook(즉, 다른 Notebook에서 Notebook 실행하거나 여러 작업을 수행하는 작업)을 오케스트레이션할 수 있는 메커니즘이 있어, 공유 함수나 모듈을 사용하는 워크플로를 구축할 수 있습니다. %run를 사용하는 것이 몇 가지 제한 사항이 있지만, 다른 전자 필기장을 포함하는 더 간단한 방법입니다.

디버깅, 버전 기록 및 실수 되돌리기

Databricks는 Python Notebook용 기본 제공 대화형 디버거 를 제공합니다. 중단점을 설정하고, 실행을 단계별로 실행하고, 변수를 검사하고, 코드 실행을 단계별로 탐색할 수 있습니다. 이렇게 하면 인쇄/로그 디버깅보다 버그를 보다 효과적으로 격리할 수 있습니다.

Azure Databricks Notebook의 디버거 도구 모음에 주석이 추가된 스크린샷

또한 전자 필기장이 자동으로 버전 기록을 유지 관리합니다. 이전 스냅샷을 보거나, 버전 설명을 제공하거나, 이전 버전을 복원하거나, 기록을 삭제/지울 수 있습니다. Git 통합을 사용하는 경우 리포지토리에서 Notebook/파일을 동기화하고 버전을 지정할 수 있습니다.

Azure Databricks Notebook의 복원 버전 기록 스크린샷.

Azure Databricks에서 Notebook을 사용하는 방법에 대한 자세한 내용은 Azure Databricks 설명서의 Notebooks 문서를 참조하세요.