Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
В этой статье рассматриваются Databricks Connect для Databricks Runtime 13.3 LTS и более поздних версий.
На этой странице описаны различные способы настройки подключения между Databricks Connect и Azure Databricks кластер или серверлесс вычисления.
Databricks Connect позволяет подключать популярные IDE, такие как Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, серверы записных книжек и другие пользовательские приложения к кластерам Azure Databricks. См. Databricks Connect.
Настройка
Прежде чем начать, вам понадобится следующее:
- Установлен Databricks Connect. Требования к установке см. в разделе "Требования к использованию Databricks Connect".
- Имя экземпляра рабочей области Azure Databricks . Это значение имени узла сервера для вычислений. Дополнительные сведения о подключении Get см. в разделе Azure Databricks вычислительных ресурсов.
- При подключении к классическому вычислительному ресурсу используйте идентификатор вашего кластера. Идентификатор кластера можно получить из URL-адреса. См. URL-адрес и идентификатор ресурса вычислений.
Настройка подключения к кластеру
Существует несколько способов настройки подключения к кластеру. Databricks Connect ищет свойства конфигурации в следующем порядке и использует первую найденную конфигурацию. Дополнительные сведения о конфигурации см. в статье "Дополнительное использование Databricks Connect".
- Метод remote() класса DatabricksSession.
- Профиль конфигурации Databricks
- Переменная среды DATABRICKS_CONFIG_PROFILE
- Переменная среды для каждого свойства конфигурации
- Профиль конфигурации Databricks с именем DEFAULT
DatabricksSession Метод класса remote()
Этот параметр применяется только для аутентификации с помощью личных маркеров доступа Azure Databricks (устаревшая версия), укажите имя экземпляра рабочей области, персональный маркер доступа Azure Databricks и идентификатор кластера.
Класс можно инициализировать DatabricksSession несколькими способами:
- Установите поля
host,tokenиcluster_idвDatabricksSession.builder.remote(). - Используйте класс
Configиз SDK Databricks. - Укажите профиль конфигурации Databricks вместе с полем
cluster_id.
Вместо указания этих свойств подключения в коде Databricks рекомендует настраивать свойства с помощью переменных среды или файлов конфигурации, как описано в этом разделе. В следующих примерах кода предполагается, что вы предоставляете некоторую реализацию предлагаемых функций retrieve_* для получения необходимых свойств от пользователя или из другого хранилища конфигурации, например Azure KeyVault.
Код для каждого из этих подходов выглядит следующим образом:
Python
# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()
язык программирования Scala
// Set the host, token, and clusterId fields in DatabricksSession.builder.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder()
.host(retrieveWorkspaceInstanceName())
.token(retrieveToken())
.clusterId(retrieveClusterId())
.getOrCreate()
Python
# Use the Databricks SDK's Config class.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
язык программирования Scala
// Use the Databricks SDK's Config class.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setHost(retrieveWorkspaceInstanceName())
.setToken(retrieveToken())
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Python
# Specify a Databricks configuration profile along with the `cluster_id` field.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
язык программирования Scala
// Specify a Databricks configuration profile along with the clusterId field.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Профиль конфигурации Databricks
Для этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле cluster_id и любые другие поля, которые необходимы для используемого вами типа аутентификации Databricks.
Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:
- Для аутентификации с использованием персонального токена доступа Azure Databricks :
hostиtoken. - Для аутентификации OAuth машина-к-машине (M2M) (где поддерживается):
host,client_id, иclient_secret. - Для проверки подлинности OAuth между компьютерами (U2M) (где поддерживается):
host - Для аутентификации учетной записи службы Microsoft Entra ID (ранее Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secretи, возможно,azure_workspace_resource_id. - Для проверки подлинности Azure CLI:
host. - Для проверки подлинности Azure управляемых удостоверений (где поддерживается):
host,azure_use_msi,azure_client_idи, возможно,azure_workspace_resource_id.
Затем задайте имя этого профиля конфигурации через класс конфигурации.
Вы можете указать cluster_id двумя способами:
-
cluster_idВключите поле в профиль конфигурации, а затем просто укажите имя профиля конфигурации. - Укажите имя профиля конфигурации вместе с полем
cluster_id.
Если вы уже установили DATABRICKS_CLUSTER_ID переменную среды с идентификатором кластера, вам также не нужно указывать cluster_id.
Код для каждого из этих подходов выглядит следующим образом:
Python
# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
язык программирования Scala
// Include the cluster_id field in your configuration profile, and then
// just specify the configuration profile's name:
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.getOrCreate()
Python
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
язык программирования Scala
// Specify a Databricks configuration profile along with the clusterId field.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Переменная DATABRICKS_CONFIG_PROFILE среды
Для этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле cluster_id и любые другие поля, которые необходимы для используемого вами типа аутентификации Databricks.
Если вы уже установили DATABRICKS_CLUSTER_ID переменную среды с идентификатором кластера, вам также не нужно указывать cluster_id.
Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:
- Для аутентификации с использованием персонального токена доступа Azure Databricks :
hostиtoken. - Для аутентификации OAuth машина-к-машине (M2M) (где поддерживается):
host,client_id, иclient_secret. - Для проверки подлинности OAuth между компьютерами (U2M) (где поддерживается):
host - Для аутентификации учетной записи службы Microsoft Entra ID (ранее Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secretи, возможно,azure_workspace_resource_id. - Для проверки подлинности Azure CLI:
host. - Для проверки подлинности Azure управляемых удостоверений (где поддерживается):
host,azure_use_msi,azure_client_idи, возможно,azure_workspace_resource_id.
Задайте для переменной DATABRICKS_CONFIG_PROFILE среды имя этого профиля конфигурации. Затем инициализировать DatabricksSession класс:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
язык программирования Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Переменная среды для каждого свойства конфигурации
Для этого параметра задайте DATABRICKS_CLUSTER_ID переменную среды и любые другие переменные среды, необходимые для типа проверки подлинности Databricks, который требуется использовать.
Необходимые переменные среды для каждого типа проверки подлинности приведены следующим образом:
- Для аутентификации с использованием персонального токена доступа Azure Databricks :
DATABRICKS_HOSTиDATABRICKS_TOKEN. - Для аутентификации OAuth машина-к-машине (M2M) (где поддерживается):
DATABRICKS_HOST,DATABRICKS_CLIENT_ID, иDATABRICKS_CLIENT_SECRET. - Для проверки подлинности OAuth между компьютерами (U2M) (где поддерживается):
DATABRICKS_HOST - Для аутентификации учетной записи службы Microsoft Entra ID (ранее Azure Active Directory):
DATABRICKS_HOST,ARM_TENANT_ID,ARM_CLIENT_ID,ARM_CLIENT_SECRETи, возможно,DATABRICKS_AZURE_RESOURCE_ID. - Для проверки подлинности Azure CLI:
DATABRICKS_HOST. - Для проверки подлинности Azure управляемых удостоверений (где поддерживается):
DATABRICKS_HOST,ARM_USE_MSI,ARM_CLIENT_IDи, возможно,DATABRICKS_AZURE_RESOURCE_ID.
Затем инициализировать DatabricksSession класс:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
язык программирования Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Профиль конфигурации Databricks с именем DEFAULT
Для этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле cluster_id и любые другие поля, которые необходимы для используемого вами типа аутентификации Databricks.
Если вы уже установили DATABRICKS_CLUSTER_ID переменную среды с идентификатором кластера, вам также не нужно указывать cluster_id.
Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:
- Для аутентификации с использованием персонального токена доступа Azure Databricks :
hostиtoken. - Для аутентификации OAuth машина-к-машине (M2M) (где поддерживается):
host,client_id, иclient_secret. - Для проверки подлинности OAuth между компьютерами (U2M) (где поддерживается):
host - Для аутентификации учетной записи службы Microsoft Entra ID (ранее Azure Active Directory):
host,azure_tenant_id,azure_client_id,azure_client_secretи, возможно,azure_workspace_resource_id. - Для проверки подлинности Azure CLI:
host. - Для проверки подлинности Azure управляемых удостоверений (где поддерживается):
host,azure_use_msi,azure_client_idи, возможно,azure_workspace_resource_id.
Присвойте этому конфигурационному профилю DEFAULT имя.
Затем инициализировать DatabricksSession класс:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
язык программирования Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Настройка подключения к бессерверным вычислениям
Databricks Connect для Python и Scala поддерживают подключение к бессерверным вычислениям. Чтобы использовать эту функцию, необходимо выполнить требования к версии для подключения к бессерверному серверу. См. сведения о требованиях к использованию Databricks Connect.
Внимание
Сейчас эта функция имеет следующие ограничения:
- Databricks Connect для Scala поддерживает бессерверные вычисления в бета-версии.
- Версия Databricks Connect и версия Python или Scala должна быть совместима. См. сведения о версиях Databricks Connect.
- Все ограничения Databricks Connect для Python или Databricks Connect для Scala.
- Все ограничения бессерверных вычислений
Для Python можно настроить подключение к бессерверным вычислениям в локальной среде:
Задайте для переменной
DATABRICKS_SERVERLESS_COMPUTE_IDautoлокальной среды значение . Если задана эта переменная среды, Databricks Connect игнорируетcluster_idзначение .В локальном профиле конфигурации Databricks, задайте
serverless_compute_id = auto, а затем используйте этот профиль в вашем коде.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Или для Python или Scala:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().getOrCreate()
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
язык программирования Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.serverless().getOrCreate()
Проверка подключения к Databricks
Чтобы убедиться, что среда, учетные данные по умолчанию и подключение к вычислительным ресурсам настроены правильно для Databricks Connect, выполните databricks-connect test команду:
databricks-connect test
Эта команда завершается с ненулевым кодом выхода и соответствующим сообщением об ошибке при обнаружении любой несовместимости в установке, например, если версия Databricks Connect несовместима с версией бессерверных вычислений Databricks. Сведения о поддержке версий Databricks Connect см. в разделах о версиях Databricks Connect.
В Databricks Connect 14.3 и более поздних версиях можно также проверить среду с помощью validateSession():
DatabricksSession.builder.validateSession(True).getOrCreate()
Отключение Databricks Connect
Службы Databricks Connect (и базовые службы Spark Connect) можно отключить в любом определенном кластере.
Чтобы отключить службу Databricks Connect, задайте следующую конфигурацию Spark в кластере.
spark.databricks.service.server.enabled false