Установка Databricks Connect для Scala
Примечание.
В этой статье рассматриваются Databricks Connect для Databricks Runtime 13.3 LTS и более поздних версий.
В этой статье описывается установка Databricks Connect для Scala. См. раздел "Что такое Databricks Connect?". Версию Python этой статьи см. в разделе "Установка Databricks Connect для Python".
Требования
- Целевая рабочая область Azure Databricks и кластер должны соответствовать требованиям к конфигурации кластера для Databricks Connect.
- Пакет средств разработки Java (JDK), установленный на компьютере разработки. Databricks рекомендует использовать версию JDK в кластере Azure Databricks. Чтобы найти версию JDK в кластере, ознакомьтесь с разделом "Системная среда" заметок о выпуске Databricks Runtime для кластера. Например,
Zulu 8.70.0.23-CA-linux64
соответствует JDK 8. См . заметки о выпуске Databricks Runtime и версии совместимости. - Scala, установленная на компьютере разработки. Databricks рекомендует использовать версию установки Scala, соответствующую версии Scala в кластере Azure Databricks. Чтобы найти версию Scala в кластере, ознакомьтесь с разделом "Системная среда" заметок о выпуске Databricks Runtime для кластера. См . заметки о выпуске Databricks Runtime и версии совместимости.
- Средство сборки Scala на компьютере разработки, например
sbt
.
Настройка клиента
После выполнения требований для Databricks Connect выполните следующие действия, чтобы настроить клиент Databricks Connect.
Шаг 1. Добавление ссылки на клиент Databricks Connect
В файле сборки проекта Scala,
pom.xml
напримерbuild.sbt
sbt
для Maven илиbuild.gradle
Gradle, добавьте следующую ссылку на клиент Databricks Connect:Sbt
libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
Maven
<dependency> <groupId>com.databricks</groupId> <artifactId>databricks-connect</artifactId> <version>14.0.0</version> </dependency>
Gradle
implementation 'com.databricks.databricks-connect:14.0.0'
Замените
14.0.0
версию библиотеки Databricks Connect, которая соответствует версии Databricks Runtime в кластере. Номера версий библиотеки Databricks Connect можно найти в центральном репозитории Maven.
Шаг 2. Настройка свойств подключения
В этом разделе описана настройка свойств для установления соединения между Databricks Connect и удаленным кластером Azure Databricks. Эти свойства включают параметры для проверки подлинности Databricks Connect с кластером.
Для Databricks Connect для Databricks Runtime 13.3 LTS и более поздних версий для Scala Databricks Connect включает пакет SDK Databricks для Java. Этот пакет SDK реализует стандарт унифицированной проверки подлинности клиента Databricks, консолидированный и согласованный архитектурный и программный подход к проверке подлинности. Этот подход делает настройку и автоматизацию проверки подлинности с помощью Azure Databricks более централизованным и предсказуемым. Он позволяет настроить проверку подлинности Azure Databricks один раз, а затем использовать эту конфигурацию в нескольких средствах и пакетах SDK Azure Databricks без дальнейших изменений конфигурации проверки подлинности.
Примечание.
Проверка подлинности OAuth на компьютере (U2M) поддерживается в пакете SDK Databricks для Java 0.18.0 и более поздних версий. Возможно, потребуется обновить установленную версию проекта кода пакета SDK Databricks для Java до 0.18.0 или более поздней, чтобы использовать проверку подлинности OAuth U2M. Ознакомьтесь с пакетом SDK Databricks для Java.
Для проверки подлинности OAuth U2M необходимо использовать интерфейс командной строки Databricks для проверки подлинности перед запуском кода Scala. См. руководство.
Проверка подлинности на компьютере (M2M) OAuth поддерживается в пакете SDK Databricks для Java 0.17.0 и выше. Возможно, потребуется обновить установленную версию установленного проекта кода пакета SDK Databricks для Java до 0.17.0 или более поздней, чтобы использовать проверку подлинности OAuth U2M. Ознакомьтесь с пакетом SDK Databricks для Java.
Пакет SDK Databricks для Java еще не реализовал проверку подлинности управляемых удостоверений Azure.
Соберите следующие свойства конфигурации.
- Имя экземпляра рабочей области Azure Databricks. Это совпадает со значением имени узла сервера для кластера. Дополнительные сведения о подключении для вычислительного ресурса Azure Databricks см. в статье .
- Идентификатор кластера. Идентификатор кластера можно получить по URL-адресу. См . URL-адрес кластера и идентификатор.
- Любые другие свойства, необходимые для поддерживаемого типа проверки подлинности Databricks. Эти свойства описаны в этом разделе.
Настройте подключение в коде. Databricks Connect ищет свойства конфигурации в следующем порядке, пока он не найдет их. Когда он находит их, он перестает выполнять поиск по оставшимся параметрам. Сведения о каждом параметре отображаются после следующей таблицы:
Параметр свойств конфигурации Применяется к 1. DatabricksSession
Метод классаremote()
Проверка подлинности маркера личного доступа Azure Databricks 2. Профиль конфигурации Azure Databricks Все типы проверки подлинности Azure Databricks 3. Переменная SPARK_REMOTE
средыПроверка подлинности маркера личного доступа Azure Databricks 4. Переменная DATABRICKS_CONFIG_PROFILE
средыВсе типы проверки подлинности Azure Databricks 5. Переменная среды для каждого свойства конфигурации Все типы проверки подлинности Azure Databricks 6. Профиль конфигурации Azure Databricks с именем DEFAULT
Все типы проверки подлинности Azure Databricks DatabricksSession
Метод классаremote()
Для этого параметра, который применяется только к проверке подлинности личного маркера доступа Azure Databricks, укажите имя экземпляра рабочей области, личный маркер доступа Azure Databricks и идентификатор кластера.
Класс можно инициализировать
DatabricksSession
несколькими способами следующим образом:host
Задайте в поле ,token
а такжеclusterId
поляDatabricksSession.builder
.- Используйте класс пакета SDK
Config
Databricks. - Укажите профиль конфигурации Databricks вместе с полем
clusterId
.
Databricks не рекомендует напрямую указывать эти свойства подключения в коде. Вместо этого Databricks рекомендует настраивать свойства с помощью переменных среды или файлов конфигурации, как описано в этом разделе. В следующих примерах кода предполагается, что вы предоставляете некоторые реализации предлагаемых
retrieve*
функций самостоятельно, чтобы получить необходимые свойства от пользователя или из другого хранилища конфигурации, например Azure KeyVault.Код для каждого из этих подходов выглядит следующим образом:
// 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() // 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() // 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()
Профиль конфигурации Azure Databricks
Для этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле
cluster_id
и любые другие поля, необходимые для поддерживаемого типа проверки подлинности Databricks, который требуется использовать.Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:
- Для проверки подлинности маркера личного доступа Azure Databricks:
host
иtoken
. - Для проверки подлинности на компьютере (M2M) OAuth (где поддерживается):
host
client_id
иclient_secret
. - Для проверки подлинности OAuth между компьютерами (U2M) (где поддерживается):
host
- Для проверки подлинности
host
субъекта-службы Microsoft Entra ID (ранее — Azure Active Directory): ,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
, .
Затем задайте имя этого профиля конфигурации через
DatabricksConfig
класс.Можно указать
cluster_id
несколько способов, как показано ниже.cluster_id
Включите поле в профиль конфигурации, а затем просто укажите имя профиля конфигурации.- Укажите имя профиля конфигурации вместе с полем
clusterId
.
Если вы уже установили
DATABRICKS_CLUSTER_ID
переменную среды с идентификатором кластера, вам также не нужно указыватьcluster_id
поля илиclusterId
поля.Код для каждого из этих подходов выглядит следующим образом:
// 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() // Specify the configuration profile name along with the clusterId field. // In this example, retrieveClusterId() assumes some custom implementation that // you provide to get the cluster ID from the user or from some other // configuration store: 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()
- Для проверки подлинности маркера личного доступа Azure Databricks:
Переменная
SPARK_REMOTE
средыДля этого параметра, который применяется только к проверке подлинности маркера личного доступа Azure Databricks, задайте
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_CONFIG_PROFILE
средыДля этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле
cluster_id
и любые другие поля, необходимые для поддерживаемого типа проверки подлинности Databricks, который требуется использовать.Если вы уже установили
DATABRICKS_CLUSTER_ID
переменную среды с идентификатором кластера, вам также не нужно указыватьcluster_id
.Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:
- Для проверки подлинности маркера личного доступа Azure Databricks:
host
иtoken
. - Для проверки подлинности на компьютере (M2M) OAuth (где поддерживается):
host
client_id
иclient_secret
. - Для проверки подлинности OAuth между компьютерами (U2M) (где поддерживается):
host
- Для проверки подлинности
host
субъекта-службы Microsoft Entra ID (ранее — Azure Active Directory): ,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
класс следующим образом:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Чтобы задать переменные среды, ознакомьтесь с документацией операционной системы.
- Для проверки подлинности маркера личного доступа Azure Databricks:
Переменная среды для каждого свойства конфигурации
Для этого параметра задайте
DATABRICKS_CLUSTER_ID
переменную среды и любые другие переменные среды, необходимые для поддерживаемого типа проверки подлинности Databricks, который требуется использовать.Необходимые переменные среды для каждого типа проверки подлинности приведены следующим образом:
- Для проверки подлинности маркера личного доступа Azure Databricks:
DATABRICKS_HOST
иDATABRICKS_TOKEN
. - Для проверки подлинности на компьютере (M2M) OAuth (где поддерживается):
DATABRICKS_HOST
DATABRICKS_CLIENT_ID
иDATABRICKS_CLIENT_SECRET
. - Для проверки подлинности OAuth между компьютерами (U2M) (где поддерживается):
DATABRICKS_HOST
- Для проверки подлинности
DATABRICKS_HOST
субъекта-службы Microsoft Entra ID (ранее — Azure Active Directory): ,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
класс следующим образом:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Чтобы задать переменные среды, ознакомьтесь с документацией операционной системы.
- Для проверки подлинности маркера личного доступа Azure Databricks:
Профиль конфигурации Azure Databricks с именем
DEFAULT
Для этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле
cluster_id
и любые другие поля, необходимые для поддерживаемого типа проверки подлинности Databricks, который требуется использовать.Если вы уже установили
DATABRICKS_CLUSTER_ID
переменную среды с идентификатором кластера, вам также не нужно указыватьcluster_id
.Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:
- Для проверки подлинности маркера личного доступа Azure Databricks:
host
иtoken
. - Для проверки подлинности на компьютере (M2M) OAuth (где поддерживается):
host
client_id
иclient_secret
. - Для проверки подлинности OAuth между компьютерами (U2M) (где поддерживается):
host
- Для проверки подлинности
host
субъекта-службы Microsoft Entra ID (ранее — Azure Active Directory): ,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
класс следующим образом:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- Для проверки подлинности маркера личного доступа Azure Databricks: