Python 개발자를 위한 Azure Databricks
이 섹션에서는 일반적인 워크플로 및 작업에 대한 자습서, API, 라이브러리 및 도구에 대한 링크를 포함하여 Python 언어를 사용하여 Azure Databricks에서 Notebook 및 작업을 개발하는 방법에 대한 가이드를 제공합니다.
get 시작하려면:
- 코드 가져오기: 파일 또는 Git 리포지토리에서 사용자 고유의 코드를 가져오거나 아래에 나열된 자습서를 사용해 보세요. Databricks는 대화형 Databricks Notebook을 사용하여 학습하는 것이 좋습니다.
- 클러스터에서 코드 실행: 사용자 고유의 클러스터를 만들거나 공유 클러스터를 사용할 수 있는 권한이 있는지 확인합니다. Notebook을 클러스터에 연결하고 Notebook을 실행합니다.
- 그러면 다음을 수행할 수 있습니다.
- Apache Spark를 사용하여 더 큰 데이터 세트 작업
- 시각화 추가
- 작업으로 워크로드 자동화
- 기계 학습을 사용하여 데이터 분석
- IDE에서 개발
자습서
아래 자습서에서는 일반적인 워크플로에 대해 알아보기 위한 예제 코드 및 Notebook을 제공합니다. Notebook 예제를 작업 영역으로 가져오는 방법에 대한 지침은 Notebook 가져오기를 참조하세요.
데이터 엔지니어링
- 자습서: Apache Spark DataFrames를 사용하여 데이터 로드 및 전환은 데이터 준비 및 분석을 위한 Apache Spark DataFrames에 대해 알아보는 데 도움이 되는 연습을 제공합니다.
- 자습서: Delta Lake
- 자습서: 첫 번째 Delta Live Tables 파이프라인실행합니다.
데이터 과학 및 기계 학습
- 데이터 준비 및 분석을 위한 Apache Spark DataFrames 시작하기: 자습서: Apache Spark DataFrames를 사용하여 데이터 로드 및 전환
- 자습서: Azure Databricks의 엔드투엔드 ML 모델 추가 예제는 자습서를 참조하세요. Get에서 AI 및 머신 러닝 시작하기.
- AutoML 사용하면 사용자 고유의 데이터 세트에 대한 기계 학습 모델 개발을 빠르게 시작할 get 있습니다. 유리 상자 접근 방식은 복제, 수정 및 다시 실행할 수 있는 전체 기계 학습 워크플로를 사용하여 Notebook을 생성합니다.
- Unity에서 모델 생애주기 관리 Catalog
- 자습서: Azure Databricks의 엔드투엔드 ML 모델
Python Notebook의 디버그
예제 Notebook에서는 Databricks Notebook에서 Python 디버거(pdb)를 사용하는 방법을 보여 줍니다. Python 디버거를 사용하려면 Databricks Runtime 11.3 LTS 이상을 실행해야 합니다.
Databricks Runtime 12.2 LTS 이상을 사용하면 변수 탐색기를 사용하여 Notebook UI에서 Python 변수의 현재 값을 추적할 수 있습니다. 변수 탐색기를 사용하여 중단점을 단계별로 실행하면서 Python 변수의 values를 관찰할 수 있습니다.
Python 디버거 예제 Notebook
참고 항목
breakpoint()
는 IPython에서 지원되지 않으므로 Databricks Notebook에서 작동하지 않습니다.
import pdb; pdb.set_trace()
대신 breakpoint()
를 사용할 수 있습니다.
Python API
Databricks 외부에서 실행되는 Python 코드는 일반적으로 Databricks 내에서 실행할 수 있으며 그 반대의 경우도 마찬가지입니다. 기존 코드가 있는 경우 Databricks로 가져와서 get 시작합니다. 자세한 내용은 아래의 Notebook 및 Databricks Git 폴더를 사용하여 코드 관리를 참조하세요.
Databricks는 단일 머신 및 분산 Python 워크로드를 모두 실행할 수 있습니다. 단일 머신 컴퓨팅의 경우 평소와 같이 Python API 및 라이브러리를 사용할 수 있습니다. 예를 들어 pandas와 scikit-learn은 "그냥 작동"합니다. 분산 Python 워크로드의 경우 Databricks는 바로 사용할 수 있는 두 가지 인기 있는 API인 PySpark와 Spark의 Pandas API를 제공합니다.
PySpark API
PySpark는 Apache Spark용 공식 Python API이며 Python과 Apache Spark의 기능을 결합합니다. PySpark는 Spark의 Pandas API보다 유연성이 뛰어나며 Spark SQL, 구조적 스트리밍, MLLib 및 GraphX와 같은 데이터 과학 및 엔지니어링 기능에 대한 광범위한 지원 및 기능을 제공합니다.
Spark 기반 Pandas API
참고 항목
이제 Koalas 오픈 소스 프로젝트는 Spark에서 Pandas API로 전환하는 것이 좋습니다. Spark의 Pandas API는 Databricks Runtime 10.0(EoS) 이상을 실행하는 클러스터에서 사용할 수 있습니다. Databricks Runtime 9.1 LTS 이하를 실행하는 클러스터의 경우 대신 Koalas를 사용합니다.
pandas는 데이터 분석 및 조작을 위해 데이터 과학자가 일반적으로 사용하는 Python 패키지입니다. 그러나 pandas는 빅 데이터로 스케일 아웃되지 않습니다. Spark의 Pandas API는 Apache Spark에서 작동하는 pandas와 동등한 API를 제공하여 이 격차를 메웁니다. 이 오픈 소스 API는 Pandas에 익숙하지만 Apache Spark에는 익숙하지 않은 데이터 과학자에게 이상적인 선택입니다.
Notebooks 및 Databricks Git 폴더를 사용하여 코드 관리
Databricks Notebooks는 Python을 지원합니다. 이러한 Notebook은 Jupyter와 유사한 기능을 제공하지만 빅 데이터를 사용하는 기본 제공 시각화, 디버깅 및 성능 모니터링을 위한 Apache Spark 통합 및 기계 학습 실험을 추적하기 위한 MLflow 통합과 같은 추가 기능을 제공합니다. Get은 이 노트북를 가져오는 것으로 시작했습니다. 클러스터에 대한 액세스 권한이 있으면 클러스터에 Notebook을 연결하고 Notebook을 실행할 수 있습니다.
팁
Notebook의 상태를 reset iPython 커널을 다시 시작합니다. Jupyter 사용자의 경우 Jupyter의 "커널 다시 시작" 옵션은 Databricks에서 Notebook을 분리하고 다시 연결하는 데 해당합니다. Python Notebook에서 커널을 다시 시작하려면 Notebook 도구 모음에서 컴퓨팅 선택기을 클릭한 다음, list 연결된 클러스터 또는 SQL 웨어하우스 위에 마우스를 올려두면 측면 메뉴가 표시됩니다. Select 분리한 후 &다시 연결합니다. 이렇게 하면 클러스터에서 Notebook을 분리하고 다시 연결하여 Python 프로세스를 다시 시작합니다.
Databricks Git 폴더를 사용하면 사용자가 Notebook 및 기타 파일을 Git 리포지토리와 동기화할 수 있습니다. Databricks Git 폴더는 코드 버전 관리 및 협업에 도움이 되며, 전체 코드 리포지토리를 Azure Databricks로 가져오고, 이전 Notebook 버전을 보고, IDE 개발과 통합하는 작업을 간소화할 수 있습니다.
클러스터 및 라이브러리
Azure Databricks 컴퓨팅은 단일 노드 클러스터에서 대규모 클러스터까지 모든 크기의 클러스터에 대한 컴퓨팅 관리를 제공합니다. 필요에 따라 클러스터 하드웨어 및 라이브러리를 사용자 지정할 수 있습니다. 데이터 과학자는 일반적으로 클러스터를 만들거나 기존 공유 클러스터를 사용하여 작업을 시작합니다. 클러스터에 대한 액세스 권한이 있으면 클러스터에 Notebook을 연결하거나 클러스터에서 작업을 실행할 수 있습니다.
- 단일 노드만 필요한 소규모 워크로드의 경우 데이터 과학자는 비용 절감을 위해 단일 노드 컴퓨팅을 사용할 수 있습니다.
- 더 자세한 내용은 컴퓨팅 구성 권장 사항을 참조하세요.
- 관리자는 클러스터 만들기를 간소화하고 안내하기 위해 set 클러스터 정책을 설정할 수 있습니다.
Azure Databricks 클러스터는 Apache Spark, Delta Lake, pandas 등을 비롯한 많은 인기 있는 라이브러리를 기본 제공하는 Databricks 런타임을 사용합니다. Notebooks 및 작업과 함께 사용할 추가 타사 또는 사용자 지정 Python 라이브러리를 설치할 수도 있습니다.
- Databricks 런타임 릴리스 정보 버전 및 호환성의 기본 라이브러리로 시작합니다. 기계 학습 워크로드에 Machine Learning용 Databricks Runtime을 사용합니다. 사전 설치된 라이브러리의 전체 목록은 Databricks Runtime 릴리스 노트 버전 및 호환성을 참조하세요.
- PyPI 또는 기타 리포지토리의 라이브러리를 사용하여 Notebook 또는 작업 환경을 수정할 수 있는 Notebook 범위 Python 라이브러리를 사용하여 환경을 사용자 지정합니다.
%pip install my_library
매직 명령은 현재 연결된 클러스터의 모든 노드에my_library
를 설치하지만 공유 클러스터의 다른 워크로드를 방해하지는 않습니다. - 필요에 따라 비 Python 라이브러리를 클러스터 라이브러리로 설치합니다.
- 자세한 내용은 라이브러리를 참조하세요.
시각적 개체
Azure Databricks Python Notebook은 다양한 유형의 시각화를 기본적으로 지원합니다. 레거시 시각화를 사용할 수도 있습니다.
타사 라이브러리를 사용하여 데이터를 시각화할 수도 있습니다. 일부는 Databricks Runtime에 미리 설치되어 있지만 사용자 지정 라이브러리도 설치할 수 있습니다. 인기 있는 옵션은 다음과 같습니다.
작업
Databricks에서 예약되거나 트리거된 작업으로 Python 워크로드를 자동화할 수 있습니다. 작업은 Notebook, Python 스크립트 및 Python 휠 파일을 실행할 수 있습니다.
- 작업을 생성하고 update 작업을 Databricks UI 또는 Databricks REST API를 사용하여 수행합니다.
- Databricks Python SDK를 사용하면 프로그래밍 방식으로 작업을 만들고, 편집하고, 삭제할 수 있습니다.
- Databricks CLI는 작업을 자동화하기 위한 편리한 명령줄 인터페이스를 제공합니다.
팁
Notebook 대신 Python 스크립트를 예약하려면 만들기 작업 요청의 본문의 spark_python_task
아래에 있는 tasks
필드를 사용합니다.
기계 학습
Databricks는 테이블 형식 데이터에 대한 기존 ML, 컴퓨터 비전 및 자연어 처리를 위한 딥 러닝, 권장 시스템, 그래프 분석 등을 포함하여 다양한 ML(기계 학습) 워크로드를 지원합니다. Databricks의 기계 학습에 대한 일반 정보는 Databricks에서 AI 및 기계 학습을 참조하세요.
ML 알고리즘의 경우 Machine Learning용 Databricks Runtime에 미리 설치된 라이브러리를 사용할 수 있습니다. 여기에는 scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib 및 XGBoost와 같은 인기 있는 Python 도구가 포함됩니다. 사용자 지정 라이브러리를 설치할 수도 있습니다.
MLOps(기계 학습 작업)의 경우 Azure Databricks는 오픈 소스 라이브러리 MLflow에 대한 관리형 서비스를 제공합니다.
MLflow 추적을 사용하면 모델 개발을 기록하고 다시 사용할 수 있는 형식으로 모델을 저장할 수 있습니다.
MLflow 모델 레지스트리를 사용하여 프로덕션으로 모델 승격을 관리하고 자동화할 수 있습니다.
작업 및 모델 서비스를 사용하면 모델을 일괄 처리 및 스트리밍 작업 및 REST 엔드포인트로 호스팅할 수 있습니다. 자세한 내용 및 예제는 gen AI 에이전트 및 ML 모델 수명 주기
일반적인 기계 학습 워크로드를 get 시작하려면 다음 페이지를 참조하세요.
- MLflow를 사용한 scikit-learn 학습 및 추적: 10분 자습서: scikit-learn을 사용한 Databricks의 기계 학습
- 딥 러닝 모델 학습: 딥 러닝
- 하이퍼 매개 변수 튜닝: Hyperopt 하이퍼 매개 변수 튜닝 병렬화
- 그래프 분석: Azure Databricks에서 GraphFrames를 사용하는 방법
IDE, 개발자 도구 및 SDK
Azure Databricks Notebook 내에서 Python 코드를 개발하는 것 외에도 PyCharm, Jupyter 및 Visual Studio Code와 같은 IDE(통합 개발 환경)를 사용하여 외부에서 개발할 수 있습니다. 외부 개발 환경과 Databricks 간에 작업을 동기화하기 위한 다음과 같은 몇 가지 옵션이 있습니다.
- 코드: Git을 사용하여 코드를 동기화할 수 있습니다. Databricks Git 폴더에 대한 Git 통합을 참조하세요.
- 라이브러리 및 작업: 외부에서 라이브러리(예: Python 휠 파일)를 만들고 Databricks에 업로드할 수 있습니다. 이러한 라이브러리는 Databricks Notebook 내에서 가져오거나 작업을 만드는 데 사용할 수 있습니다. 라이브러리 및 워크플로 예약 및 오케스트레이션을 참조하세요.
- 원격 머신 실행: 대화형 개발 및 테스트를 위해 로컬 IDE에서 코드를 실행할 수 있습니다. IDE는 Azure Databricks와 통신하여 Azure Databricks 클러스터에서 Apache Spark 및 대규모 계산을 실행할 수 있습니다. Databricks Connect를 참조하세요.
Databricks는 set의 SDK, Python SDK를 포함하여, 자동화 및 외부 도구와의 통합을 지원합니다. Databricks SDK를 사용하여 클러스터 및 라이브러리, 코드 및 기타 작업 영역 개체, 워크로드 및 작업 등과 같은 리소스를 관리할 수 있습니다. Databricks SDK를 참조하세요.
IDE, 개발자 도구 및 SDK에 대한 자세한 내용은 개발자 도구 참조하세요.
추가 리소스
Databricks Academy는 많은 주제에 대해 자기 주도적이고 강사가 주도하는 과정을 제공합니다.
Databricks Labs는 pytest 플러그 인 및 pylint 플러그 인과 같은 Databricks에서 Python 개발을 위한 도구를 제공합니다.
PySpark와 pandas 간의 상호 운용성을 지원하는 기능은 다음과 같습니다.
Python 및 SQL 데이터베이스 연결 도구는 다음과 같습니다.
- Python용 Databricks SQL 커넥터를 통해 Python 코드를 사용하여 Azure Databricks 리소스에서 SQL 명령을 실행할 수 있습니다.
- pyodbc를 사용하면 ODBC를 통해 로컬 Python 코드에서 Databricks Lakehouse에 저장된 데이터에 연결할 수 있습니다.
Databricks 기술 자료에서 Python 워크로드를 Databricks로 이동하기 위한 FAQ 및 팁을 찾을 수 있습니다.