비고
이 문서에서는 Databricks Runtime 14.0 이상용 Databricks Connect에 대해 설명합니다.
이 문서에서는 Databricks Connect의 기본 설정을 넘어서는 항목에 대해 설명합니다.
Spark Connect 연결 문자열 구성
클러스터에 대한 연결 구성에 설명된 옵션을 사용하여 클러스터에 연결하는 것 외에도 고급 옵션은 Spark Connect 연결 문자열을 사용하여 연결하는 것입니다. 함수에서 문자열을 remote 전달하거나 환경 변수를 SPARK_REMOTE 설정할 수 있습니다.
비고
Databricks 개인용 액세스 토큰 인증만 사용하여 Spark Connect 연결 문자열을 사용하여 연결할 수 있습니다.
파이썬
함수를 사용하여 연결 문자열을 설정하려면 다음을 수행합니다 remote .
from databricks.connect import DatabricksSession
workspace_instance_name = retrieve_workspace_instance_name()
token = retrieve_token()
cluster_id = retrieve_cluster_id()
spark = DatabricksSession.builder.remote(
f"sc://{workspace_instance_name}:443/;token={token};x-databricks-cluster-id={cluster_id}"
).getOrCreate()
또는 환경 변수를 설정합니다.SPARK_REMOTE
sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
그런 다음, 클래스를 초기화합니다 DatabricksSession .
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
환경 변수를 SPARK_REMOTE 설정합니다.
sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
그런 다음, 클래스를 초기화합니다 DatabricksSession .
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.getOrCreate()
Databricks Connect에서 Spark Connect 서버 사용
선택적으로 오픈 소스 Spark Connect 서버에 대해 Databricks Connect를 실행할 수 있습니다.
중요합니다
Databricks 런타임 및 Databricks Connect에서 사용할 수 있는 일부 기능은 Databricks에만 사용되거나 오픈 소스 Apache Spark에서 아직 릴리스되지 않았습니다. 코드가 이러한 기능을 사용하는 경우 다음 단계가 오류로 실패할 수 있습니다.
로컬 Spark Connect 서버를 시작합니다. Spark Connect를 사용하는 방법 참조
Databricks Connect를 구성합니다. 로컬 Spark Connect 서버를 가리키도록 환경 변수
SPARK_REMOTE를 설정합니다. 클라이언트를 사용하여 Spark Connect에 연결하는 방법을 참조하세요.export SPARK_REMOTE="sc://localhost"Databricks 세션을 초기화합니다.
파이썬
from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate()Scala
import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder.getOrCreate()
추가 HTTP 헤더
Databricks Connect는 HTTP/2를 통해 gRPC를 통해 Databricks 클러스터와 통신합니다.
클라이언트에서 들어오는 요청을 더 잘 제어하기 위해 고급 사용자는 클라이언트와 Azure Databricks 클러스터 간에 프록시 서비스를 설치하도록 선택할 수 있습니다. 경우에 따라 프록시에 HTTP 요청에 사용자 지정 헤더가 필요할 수 있습니다.
헤더() 메서드를 사용하여 HTTP 요청에 사용자 지정 헤더를 추가합니다.
파이썬
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.header("x-custom-header", "value").getOrCreate()
인증서
클러스터가 사용자 지정 SSL/TLS 인증서를 사용하여 Azure Databricks 작업 영역 FQDN(정규화된 도메인 이름)을 확인하는 경우 로컬 개발 머신에서 환경 변수 GRPC_DEFAULT_SSL_ROOTS_FILE_PATH 를 설정해야 합니다. 이 환경 변수는 클러스터에 설치된 인증서의 전체 경로로 설정해야 합니다.
파이썬
다음 예제에서는 이 환경 변수를 설정합니다.
import os
os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "/etc/ssl/certs/ca-bundle.crt"
환경 변수를 설정하는 다른 방법은 운영 체제 설명서를 참조하세요.
Scala
Java 및 Scala는 환경 변수를 프로그래밍 방식으로 구성하는 방법을 제공하지 않습니다. 애플리케이션의 일부로 구성하는 방법에 대한 자세한 내용은 운영 체제 또는 IDE 설명서를 참조하세요.
로깅 및 디버그 로그
파이썬
Python용 Databricks Connect는 표준 Python 로깅을 사용하여 로그를 생성합니다.
로그는 표준 오류 스트림(stderr)으로 내보내지고 기본적으로 꺼집니다.
환경 변수 SPARK_CONNECT_LOG_LEVEL=debug 를 설정하면 이 기본값이 수정되고 모든 로그 메시지가 수준 이상에서 DEBUG 출력됩니다.
Scala
Scala용 Databricks Connect는 SLF4J 로깅을 사용하며 SLF4J 공급자와 함께 제공하지 않습니다.
Databricks Connect를 사용하는 애플리케이션은 SLF4J 공급자를 포함해야 하며 경우에 따라 로그 메시지를 인쇄하도록 구성됩니다.
- 가장 간단한 옵션은 로그 메시지를 수준 및 그 이상에서 표준 오류 스트림(
INFO)에 출력하는 slf4j-simple 공급자를 포함하는 것입니다. - 보다 구성 가능한 대안은 클래스 경로에 있는 파일로부터 구성을 자동으로 감지하여 로드하는 slf4j-reload4j 공급자를 사용해야 합니다.
다음 예제에서는 간단한 log4j.properties 파일을 보여줍니다.
log4j.rootLogger=INFO,stderr
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
위의 예제에서는 루트 로거(또는 특정 로거)가 DEBUG 수준으로 설정된 경우 디버그 로그가 인쇄됩니다.
log4j.rootLogger=DEBUG,stderr