Поделиться через


Установка 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

  1. В файле сборки проекта 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'
    
  2. Замените 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.

  1. Соберите следующие свойства конфигурации.

  2. Настройте подключение в коде. 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
    1. 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()
      
    2. Профиль конфигурации Azure Databricks

      Для этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле cluster_id и любые другие поля, необходимые для поддерживаемого типа проверки подлинности Databricks, который требуется использовать.

      Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:

      Затем задайте имя этого профиля конфигурации через 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()
      
    3. Переменная 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()
      

      Чтобы задать переменные среды, ознакомьтесь с документацией операционной системы.

    4. Переменная DATABRICKS_CONFIG_PROFILE среды

      Для этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле cluster_id и любые другие поля, необходимые для поддерживаемого типа проверки подлинности Databricks, который требуется использовать.

      Если вы уже установили DATABRICKS_CLUSTER_ID переменную среды с идентификатором кластера, вам также не нужно указывать cluster_id.

      Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:

      Задайте для переменной DATABRICKS_CONFIG_PROFILE среды имя этого профиля конфигурации. Затем инициализировать DatabricksSession класс следующим образом:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Чтобы задать переменные среды, ознакомьтесь с документацией операционной системы.

    5. Переменная среды для каждого свойства конфигурации

      Для этого параметра задайте DATABRICKS_CLUSTER_ID переменную среды и любые другие переменные среды, необходимые для поддерживаемого типа проверки подлинности Databricks, который требуется использовать.

      Необходимые переменные среды для каждого типа проверки подлинности приведены следующим образом:

      Затем инициализировать DatabricksSession класс следующим образом:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Чтобы задать переменные среды, ознакомьтесь с документацией операционной системы.

    6. Профиль конфигурации Azure Databricks с именем DEFAULT

      Для этого параметра создайте или определите профиль конфигурации Azure Databricks, содержащий поле cluster_id и любые другие поля, необходимые для поддерживаемого типа проверки подлинности Databricks, который требуется использовать.

      Если вы уже установили DATABRICKS_CLUSTER_ID переменную среды с идентификатором кластера, вам также не нужно указывать cluster_id.

      Обязательные поля профиля конфигурации для каждого типа проверки подлинности приведены следующим образом:

      Присвойте этому профилю DEFAULTконфигурации имя.

      Затем инициализировать DatabricksSession класс следующим образом:

      scala
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()