비고
이 문서는 Databricks Connect 15.4 LTS 이상에 적용됩니다.
이 문서에서는 IDE에서 프로젝트를 만들고, 가상 환경을 설치하고, Python용 Databricks Connect를 설치하고, Databricks 작업 영역의 서버리스 컴퓨팅에서 코드를 실행하는 방법을 설명합니다.
이 자습서에서는 Python 3.12 및 Databricks Connect 16.4 LTS를 사용합니다. Databricks Connect의 다른 버전의 Python을 사용하려면 호환되어야 합니다. 버전 지원 매트릭스를 참조하세요.
요구 사항
이 자습서를 완료하려면 다음 요구 사항을 충족해야 합니다.
- 작업 영역, 로컬 환경 및 컴퓨팅은 Python용 Databricks Connect에 대한 요구 사항을 충족합니다. Databricks Connect 사용 요구 사항을 참조하세요.
- 서버리스 컴퓨팅은 작업 영역에서 사용하도록 설정됩니다. 서버리스 컴퓨팅에 연결하기를 참조하세요.
- Python 3.12가 설치되어 있습니다.
- Visual Studio Code와 같은 IDE가 설치되어 있습니다.
- 로컬 컴퓨터에 Databricks CLI가 설치되어 있습니다. Databricks CLI 설치 또는 업데이트를 참조하세요.
1단계: Databricks 인증 구성
이 자습서에서는 Databricks 작업 영역에 인증하기 위해 Databricks OAuth U2M(사용자-컴퓨터) 인증 및 Databricks 구성 프로필을 사용합니다.
Databricks CLI를 사용하여 각 대상 작업 영역에 대해 다음 명령을 실행하여 OAuth 토큰 관리를 로컬로 시작합니다. 다음 명령에서 Databricks
<workspace-url>로 바꿉 니다. 예를 들면 다음과 같습니다https://dbc-a1b2345c-d6e7.cloud.databricks.com.databricks auth login --host <workspace-url>Databricks CLI는 Databricks 구성 프로필로 입력한 정보를 저장하라는 메시지를 표시합니다.
Enter를 눌러 제안된 프로필 이름을 수락하거나 새 프로필 또는 기존 프로필의 이름을 입력합니다. Databricks는 프로필 이름으로 사용하는DEFAULT것이 좋습니다.웹 브라우저에서 화면의 지침을 완료하여 Databricks 작업 영역에 로그인합니다.
2단계: 새 Python 가상 환경 만들기
프로젝트 폴더를 만들고 IDE에서 엽니다. 예를 들어 Visual Studio Code 주 메뉴에서 파일>열기 폴더>열기를 클릭합니다.
프로젝트 폴더 루트에서 터미널 창을 엽니다. 예를 들어 Visual Studio Code 주 메뉴에서터미널> 클릭합니다.
터미널에서 다음 명령을 실행하여 프로젝트 폴더의 루트에서 호출
venv되는 프로젝트에 대한 가상 환경을 만듭니다.python3.12 -m venv .venv가상 환경을 활성화합니다.
# Linux/Mac source .venv/bin/activate# Windows .venv\Scripts\activate
3단계: Databricks Connect 설치
Databricks Connect를 설치합니다. Databricks Connect 16.4의 최신 릴리스 버전에 대한 자세한 내용은 Databricks Runtime 16.4용 Databricks Connect를 참조하세요.
pip install "databricks-connect==16.4.*"
4단계: 코드 추가 및 실행
프로젝트에 새 Python 파일
main.py추가다음 코드를 파일에 입력하고 자리 표시자를
<profile-name>1단계의 구성 프로필 이름으로 바꾼 다음 파일을 저장합니다. 기본 구성 프로필 이름은 .입니다DEFAULT.from databricks.connect import DatabricksSession spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate() df = spark.read.table("samples.nyctaxi.trips") df.show(5)다음 명령을 사용하여 코드를 실행합니다.
python3 main.py테이블의 5개 행이 반환됩니다.
+--------------------+---------------------+-------------+-----------+---------+-----------+ |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip| +--------------------+---------------------+-------------+-----------+----------+-----------+ | 2016-02-16 22:40:45| 2016-02-16 22:59:25| 5.35| 18.5| 10003| 11238| | 2016-02-05 16:06:44| 2016-02-05 16:26:03| 6.5| 21.5| 10282| 10001| | 2016-02-08 07:39:25| 2016-02-08 07:44:14| 0.9| 5.5| 10119| 10003| | 2016-02-29 22:25:33| 2016-02-29 22:38:09| 3.5| 13.5| 10001| 11222| | 2016-02-03 17:21:02| 2016-02-03 17:23:24| 0.3| 3.5| 10028| 10028| +--------------------+---------------------+-------------+-----------+----------+-----------+
IDE에서 Databricks Connect를 사용하여 Databricks 서버리스 컴퓨팅에서 첫 번째 쿼리를 성공적으로 실행했습니다.
5단계: 코드 프로덕션 준비
프로덕션 시나리오의 경우 Spark 세션 작성기에서 컴퓨팅 사양을 사용하지 않는 것이 중요합니다. 예를 들어 클래식 클러스터 Standard 에 코드를 배포하거나 Dedicated Spark 세션 작성기에서 API를 사용하는 .serverless() 경우 클래식 클러스터를 클라이언트로 사용하여 새 서버리스 Spark 세션이 만들어집니다.
코드를 유연하고 프로덕션에 사용할 준비가 되도록 Spark 세션에는 매개 변수가 포함되어서는 안 됩니다.
spark = DatabricksSession.builder.getOrCreate()
그러나 이 코드가 Databricks에서 실행되면 Databricks 컴퓨팅의 기본 전역 Spark 세션이 사용됩니다.
IDE에서 서버리스 컴퓨팅을 사용하도록 설정하려면 매개 변수가 지정되지 않은 경우 선택한 DatabricksSession.builder DEFAULT 구성 프로필을 사용합니다.
텍스트 편집기를 사용하여 다음 위치에 있는 파일을 엽니다
.databrickscfg.$HOMEUnix, Linux 또는 macOS의 사용자 홈 폴더:~/.databrickscfg또는Windows의 사용자
%USERPROFILE%홈 폴더입니다. 예를 들어 macOS의 경우:nano ~/.databrickscfg
프로필에 추가
serverless_compute_id = auto합니다.DEFAULT[DEFAULT] host = https://my-workspace.cloud.databricks.com auth_type = databricks-cli serverless_compute_id = auto변경 내용을 저장하고 편집기를 종료합니다.
일반 Spark 세션을 사용하도록 코드를 수정하고 실행합니다.
from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate() df = spark.read.table("samples.nyctaxi.trips") df.show(5)python3 main.py
DEFAULT 구성 프로필을 사용하여 IDE에서 Databricks Connect를 사용하여 Databricks 서버리스 컴퓨팅에서 프로덕션 준비 코드를 성공적으로 실행했습니다.
팁 (조언)
환경 변수를 사용하여 특정 Databricks 컴퓨팅에 대한 연결을 설정할 수도 있습니다.
- 서버리스:
DATABRICKS_SERVERLESS_COMPUTE_ID=auto - 고전:
DATABRICKS_CLUSTER_ID=<your_cluster_id>