Scala 개발자를 위한 Azure Databricks
이 문서에서는 Scala 언어를 사용하여 Azure Databricks에서 Notebooks 및 작업을 개발하는 방법에 대한 가이드를 제공합니다. 첫 번째 섹션에서는 일반적인 워크플로 및 작업에 대한 자습서에 대한 링크를 제공합니다. 두 번째 섹션에서는 API, 라이브러리 및 키 도구에 대한 링크를 제공합니다.
시작하기 위한 기본 워크플로는 다음과 같습니다.
- 코드를 가져오고 대화형 Databricks Notebook을 사용하여 실행: 파일 또는 Git 리포지토리에서 사용자 고유의 코드를 가져오거나 아래에 나열된 자습서를 사용해 보세요.
- 클러스터에서 코드 실행: 사용자 고유의 클러스터를 만들거나 공유 클러스터를 사용할 수 있는 권한이 있는지 확인합니다. Notebook을 클러스터에 연결하고 Notebook을 실행합니다.
이 외에도 더 구체적인 항목으로 분기할 수 있습니다.
- Apache Spark를 사용하여 더 큰 데이터 세트 작업
- 시각화 추가
- 작업으로 워크로드 자동화
- IDE에서 개발
자습서
아래 자습서에서는 일반적인 워크플로에 대해 알아보기 위한 예제 코드 및 Notebook을 제공합니다. Notebook 예제를 작업 영역으로 가져오는 방법에 대한 지침은 Notebook 가져오기를 참조하세요.
- 자습서: Apache Spark DataFrames를 사용하여 데이터 로드 및 변환
- 자습서: Delta Lake는 Scala 예제를 제공합니다.
- 빠른 시작 Java 및 Scala는 Scala에서 MLflow를 사용하여 기계 학습 실행을 추적하는 기본 사항을 학습하도록 도와줍니다.
- Azure Databricks에서 XGBoost를 사용하면 Scala 예제가 제공됩니다.
참조
아래 하위 섹션에서는 Scala를 사용하여 Azure Databricks에서 개발을 시작하는 데 도움이 되는 주요 기능과 팁을 나열합니다.
Scala API.
이 링크는 Apache Spark Scala API에 대한 소개 및 참조를 제공합니다.
- 자습서: Apache Spark DataFrames를 사용하여 데이터 로드 및 변환
- JSON 스트링 쿼리
- 구조화된 스트리밍 소개
- Apache Spark Core API 참조
- Apache Spark ML API 참조
Notebooks 및 Databricks Git 폴더를 사용하여 코드 관리
Databricks Notebooks는 Scala를 지원합니다. 이러한 Notebook은 Jupyter와 유사한 기능을 제공하지만 빅 데이터를 사용하는 기본 제공 시각화, 디버깅 및 성능 모니터링을 위한 Apache Spark 통합 및 기계 학습 실험을 추적하기 위한 MLflow 통합과 같은 추가 기능을 제공합니다. notebook을 가져와 시작합니다. 클러스터에 대한 액세스 권한이 있으면 클러스터에 Notebook을 연결하고 Notebook을 실행할 수 있습니다.
팁
Notebook의 상태를 완전히 다시 설정하려면 커널을 다시 시작하는 것이 유용할 수 있습니다. Jupyter 사용자의 경우 Jupyter의 "커널 다시 시작" 옵션은 Databricks에서 Notebook을 분리하고 다시 연결하는 데 해당합니다. Notebook에서 커널을 다시 시작하려면 Notebook 도구 모음에서 컴퓨팅 선택기를 클릭하고 목록의 연결된 클러스터 또는 SQL 웨어하우스 위로 마우스를 가져가면 측면 메뉴를 표시합니다. 분리 및 다시 연결을 선택합니다. 이렇게 하면 클러스터에서 Notebook을 분리하고 다시 연결하여 프로세스를 다시 시작합니다.
Databricks Git 폴더를 사용하면 사용자가 Notebook 및 기타 파일을 Git 리포지토리와 동기화할 수 있습니다. Databricks Git 폴더는 코드 버전 관리 및 협업에 도움이 되며, 전체 코드 리포지토리를 Azure Databricks로 가져오고, 이전 Notebook 버전을 보고, IDE 개발과 통합하는 작업을 간소화할 수 있습니다. 원격 Git 리포지토리를 복제하여 시작합니다. 그런 다음 리포지토리 복제본으로 Notebook을 열거나 생성하고, Notebook을 클러스터에 연결하고, Notebook을 실행할 수 있습니다.
클러스터 및 라이브러리
Azure Databricks 컴퓨팅은 단일 노드 클러스터에서 대규모 클러스터까지 모든 크기의 클러스터에 대한 컴퓨팅 관리를 제공합니다. 필요에 따라 클러스터 하드웨어 및 라이브러리를 사용자 지정할 수 있습니다. 데이터 과학자는 일반적으로 클러스터를 만들거나 기존 공유 클러스터를 사용하여 작업을 시작합니다. 클러스터에 대한 액세스 권한이 있으면 클러스터에 Notebook을 연결하거나 클러스터에서 작업을 실행할 수 있습니다.
- 단일 노드만 필요한 소규모 워크로드의 경우 데이터 과학자는 비용 절감을 위해 단일 노드 컴퓨팅을 사용할 수 있습니다.
- 더 자세한 내용은 컴퓨팅 구성 권장 사항을 참조하세요.
- 관리자는 클러스터 정책을 설정하여 클러스터 생성을 간소화하고 안내할 수 있습니다.
Azure Databricks 클러스터는 Apache Spark, Delta Lake 등을 비롯한 많은 인기 있는 라이브러리를 기본 제공하는 Databricks 런타임을 사용합니다. Notebooks 및 작업과 함께 사용할 추가 타사 또는 사용자 지정 라이브러리를 설치할 수도 있습니다.
- Databricks 런타임 릴리스 정보 버전 및 호환성의 기본 라이브러리로 시작합니다. 사전 설치된 라이브러리의 전체 목록은 Databricks Runtime 릴리스 노트 버전 및 호환성을 참조하세요.
- 클러스터에 Scala 라이브러리를 설치할 수도 있습니다.
- 자세한 내용은 라이브러리를 참조하세요.
시각적 개체
Azure Databricks Scala Notebook은 다양한 유형의 시각화를 기본적으로 지원합니다. 레거시 시각화를 사용할 수도 있습니다.
상호 운용성
이 섹션에서는 Scala와 SQL 간의 상호 운용성을 지원하는 기능에 대해 설명합니다.
작업
Azure Databricks에서 예약되거나 트리거된 작업으로 Scala 워크로드를 자동화할 수 있습니다. 작업은 Notebook 및 JAR을 실행할 수 있습니다.
- UI를 통해 작업을 만드는 방법에 대한 자세한 내용은 Databricks 작업 구성 및 편집을 참조하세요.
- Databricks SDK를 사용하면 프로그래밍 방식으로 작업을 만들고, 편집하고, 삭제할 수 있습니다.
- Databricks CLI는 작업을 자동화하기 위한 편리한 명령줄 인터페이스를 제공합니다.
IDE, 개발자 도구 및 SDK
Azure Databricks Notebook 내에서 Scala 코드를 개발하는 것 외에도 IntelliJ IDEA와 같은 IDE(통합 개발 환경)를 사용하여 외부에서 개발할 수 있습니다. 외부 개발 환경과 Azure Databricks 간에 작업을 동기화하기 위한 다음과 같은 몇 가지 옵션이 있습니다.
- 코드: Git을 사용하여 코드를 동기화할 수 있습니다. Databricks Git 폴더에 대한 Git 통합을 참조하세요.
- 라이브러리 및 작업: 외부에서 라이브러리를 만들고 Azure Databricks에 업로드할 수 있습니다. 이러한 라이브러리는 Azure Databricks Notebook 내에서 가져오거나 작업을 만드는 데 사용할 수 있습니다. 라이브러리 및 워크플로 예약 및 오케스트레이션을 참조하세요.
- 원격 머신 실행: 대화형 개발 및 테스트를 위해 로컬 IDE에서 코드를 실행할 수 있습니다. IDE는 Azure Databricks와 통신하여 Azure Databricks 클러스터에서 대규모 계산을 실행할 수 있습니다. 예를 들어, IntelliJ IDEA를 Databricks Connect 와 함께 사용할 수 있습니다.
Databricks는 자동화 및 외부 도구와의 통합을 지원하는 SDK 세트를 제공합니다. Databricks SDK를 사용하여 클러스터 및 라이브러리, 코드 및 기타 작업 영역 개체, 워크로드 및 작업 등과 같은 리소스를 관리할 수 있습니다. Databricks SDK를 참조하세요.
IDE, 개발자 도구 및 SDK에 대한 자세한 내용은 개발자 도구 참조하세요.
추가 리소스
- Databricks Academy는 많은 주제에 대해 자기 주도적이고 강사가 주도하는 과정을 제공합니다.