비고
이 문서에서는 Databricks Runtime 13.3 LTS 이상에 대한 Databricks Connect에 대해 설명합니다.
Databricks Connect를 사용하면 Databricks 외부의 로컬 개발 환경에서 Databricks 컴퓨팅에 연결할 수 있습니다. 그런 다음, 코드를 Databricks의 노트북이나 작업으로 옮기기 전에, IDE에서 직접 개발, 디버그 및 테스트할 수 있습니다. Databricks Connect란 무엇인가요?를 참조하세요.
이식성
로컬 개발에서 배포에서 Databricks로 원활하게 전환하기 위해 모든 Databricks Connect API는 해당 Databricks 런타임의 일부로 Databricks Notebook에서 사용할 수 있습니다. 이렇게 하면 코드를 변경하지 않고 Databricks Notebook에서 코드를 실행할 수 있습니다.
DatabricksSession 동작 방식
Databricks 작업 영역의 노트북 및 작업들에서와 로컬 개발 환경에서 Databricks Connect를 사용할 때의 DatabricksSession 동작은 약간 다릅니다.
로컬 개발 환경 동작
Databricks DatabricksSession.builder.getOrCreate() 외부의 IDE 내에서 로컬로 코드를 실행하는 경우 제공된 구성에 대한 기존 Spark 세션을 가져오거나 존재하지 않는 경우 새 Spark 세션을 만듭니다.
DatabricksSession.builder.create() 항상 새 Spark 세션을 만듭니다.
host, token및 cluster_id 같은 연결 매개 변수는 소스 코드, 환경 변수 또는 .databrickscfg 구성 프로필 파일에서 채워집니다.
즉, Databricks Connect를 사용하여 실행하는 경우 다음 코드는 두 개의 개별 세션을 만듭니다.
spark1 = DatabricksSession.builder.create()
spark2 = DatabricksSession.builder.create()
Databricks 작업 영역 동작
Databricks 작업 영역의 Notebook 또는 작업에서 코드를 실행할 때 DatabricksSession.builder.getOrCreate() 추가 구성 없이 사용할 경우 기본 Spark 세션(spark 변수를 통해서도 액세스할 수 있음)을 반환합니다.
spark 변수는 Notebook 또는 작업이 연결된 컴퓨팅 인스턴스에 연결하도록 미리 구성됩니다. 예를 들어 DatabricksSession.builder.clusterId(...).getOrCreate() 또는 DatabricksSession.builder.serverless().getOrCreate()사용하여 추가 연결 매개 변수를 설정하는 경우 새 Spark 세션이 만들어집니다.
DatabricksSession.builder.create()에는 DatabricksSession.builder.clusterId(...).create()과 같은 명시적인 연결 매개 변수가 Notebook에서 필요하며, 그렇지 않으면 [UNSUPPORTED] 오류가 반환됩니다.
Databricks Connect를 사용하여 노트북이나 작업에 연결되지 않은 Databricks 컴퓨팅에 접속할 수 있습니다. 이때, 설정 remote()나 개별 설정 메서드( 또는 host())를 활용하는 token()방법을 사용할 수 있습니다. 이러한 경우, Databricks 노트북이나 작업 외부에서 사용될 때와 유사하게, 참조된 컴퓨팅에 대해 새 세션이 생성됩니다.
비고
서버리스 컴퓨팅에서 실행되는 노트북의 경우 기본 설정으로 쿼리는 9000초 후에 시간 초과가 발생합니다. Spark 구성 속성 spark.databricks.execution.timeout설정하여 이 속성을 사용자 지정할 수 있습니다.
Azure Databricks에서 Spark 구성 속성 설정을 참조하세요.