Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
В этой статье рассматривается Databricks Connect для Databricks Runtime версии 14.0 и выше.
В этой статье описываются разделы, которые выходят за рамки базовой настройки Databricks Connect.
Настройка строки подключения Spark Connect
Помимо подключения к кластеру с помощью параметров, описанных в разделе "Настройка подключения к кластеру", более расширенный вариант подключения осуществляется с помощью строки подключения Spark Connect. Можно передать строку в remote функции или задать SPARK_REMOTE переменную среды.
Замечание
Для подключения с помощью строки подключения Spark Connect можно использовать только аутентификацию с персональным токеном доступа Databricks.
Питон
Чтобы задать строку подключения с помощью функции 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()
Использование сервера Spark Connect с Databricks Connect
При необходимости можно запустить Databricks Connect на сервере Spark Connect с открытым исходным кодом.
Это важно
Некоторые функции, доступные в Databricks Runtime и Databricks Connect, являются эксклюзивными для Databricks или еще не выпущены в Apache Spark с открытым исходным кодом. Если код использует эти функции, следующие шаги могут завершиться ошибкой.
Запустите локальный сервер Spark Connect. Узнайте , как использовать Spark Connect
Настройка Databricks Connect. Задайте переменную
SPARK_REMOTEсреды, чтобы указать локальный сервер Spark Connect. См. статью "Подключение к 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 взаимодействует с кластерами Databricks через gRPC по протоколу HTTP/2.
Чтобы лучше контролировать запросы, поступающие от клиентов, расширенные пользователи могут выбрать установку прокси-службы между клиентом и кластером Azure Databricks. В некоторых случаях прокси-серверы могут требовать пользовательские заголовки в HTTP-запросах.
Используйте метод header() для добавления пользовательских заголовков в 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 не предлагают способы программной настройки переменных среды. Для получения информации о том, как настроить их в составе вашего приложения, обратитесь к документации по операционной системе или интегрированной среде разработки.
Ведение журнала и отладка журналов
Питон
Databricks Connect для Python создает журналы с помощью стандартного ведения журнала Python.
Логи создаются в стандартном потоке ошибок (stderr) и по умолчанию они отключены.
Установка переменной среды изменит этот параметр SPARK_CONNECT_LOG_LEVEL=debug по умолчанию и распечатает все сообщения журнала на DEBUG уровне и выше.
Scala
Databricks Connect для Scala использует ведение журнала SLF4J и не поставляется с какими-либо поставщиками SLF4J.
Ожидается, что приложения, использующие Databricks Connect, включают поставщика SLF4J и в некоторых случаях настроены так, чтобы печатать сообщения журнала.
- Самый простой вариант — включить поставщик slf4j-simple, который печатает сообщения журнала на уровне
INFOи выше в стандартный поток ошибок (stderr). - Более настраиваемая альтернатива — использовать поставщик slf4j-reload4j , который выбирает конфигурацию из
log4j.propertiesфайла в classpath.
В следующем примере показан простой 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