共用方式為


安裝適用於 Scala 的 Databricks 連線

注意

本文涵蓋 Databricks 連線 Databricks Runtime 13.3 LTS 和更新版本。

本文說明如何安裝適用於 Scala 的 Databricks 連線。 請參閱什麼是 Databricks 連線?。 如需本文的 Python 版本,請參閱安裝適用於 Python 的 Databricks 連線。

需求

  • 您的目標 Azure Databricks 工作區和叢集必須符合 Databricks 連線 的叢集設定需求
  • 安裝在開發電腦上的 Java 開發工具套件 (JDK)。 Databricks 建議您使用的 JDK 安裝版本符合 Azure Databricks 叢集上的 JDK 版本。 若要在叢集上尋找 JDK 版本,請參閱叢集 Databricks Runtime 版本資訊中的「系統環境」一節。 例如, Zulu 8.70.0.23-CA-linux64 對應至 JDK 8。 請參閱 Databricks Runtime 版本資訊版本和相容性
  • 安裝在開發電腦上的 Scala。 Databricks 建議您使用的 Scala 安裝版本符合 Azure Databricks 叢集上的 Scala 版本。 若要在叢集上尋找 Scala 版本,請參閱叢集 Databricks Runtime 版本資訊的「系統環境」一節。 請參閱 Databricks Runtime 版本資訊版本和相容性
  • 開發電腦上的 Scala 建置工具,例如 sbt

設定 用戶端

在您符合 Databricks 連線 的需求之後,請完成下列步驟來設定 Databricks 連線 用戶端。

步驟 1:新增 Databricks 連線 客戶端的參考

  1. 在 Scala 專案的建置檔案中,例如 build.sbtsbtpom.xml ,針對 Maven 或 build.gradle Gradle,將下列參考新增至 Databricks 連線 用戶端:

    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 運行時間版本相符的 Databricks 連線 連結庫版本。 您可以在 Maven 中央存放庫中找到 Databricks 連線 連結庫版本號碼

步驟 2:設定連線屬性

在本節中,您會設定屬性來建立 Databricks 連線 與遠端 Azure Databricks 叢集之間的連線。 這些屬性包括用來向叢集驗證 Databricks 連線 的設定。

針對 Databricks 連線 Databricks Runtime 13.3 LTS 和更新版本,針對 Scala,Databricks 連線 包含適用於 JavaDatabricks SDK。 此 SDK 會實作 Databricks 用戶端統一驗證 標準、合並且一致的架構和驗證程序設計方法。 這種方法可讓使用 Azure Databricks 更集中且可預測的方式來設定和自動化驗證。 它可讓您設定 Azure Databricks 驗證一次,然後在多個 Azure Databricks 工具和 SDK 之間使用該設定,而不需要進一步的驗證組態變更。

注意

  1. 收集下列組態屬性。

  2. 在您的程式代碼中設定連線。 Databricks 連線 依下列順序搜尋組態屬性,直到找到它們為止。 找到它們之後,它會停止搜尋其餘選項。 下表後面會出現每個選項的詳細資料:

    組態屬性選項 適用於
    1. 類別 DatabricksSessionremote() 方法 僅限 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. 類別 DatabricksSessionremote() 方法

      針對此選項,僅適用於 Azure Databricks 個人存取令牌驗證 、指定工作區實例名稱、Azure Databricks 個人存取令牌,以及叢集的標識符。

      您可以透過數種方式初始化 DatabricksSession 類別,如下所示:

      • 在中DatabricksSession.builder設定hosttokenclusterId 欄位。
      • 使用 Databricks SDK 的 Config 類別。
      • 指定 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 組態配置檔

      針對此選項,請建立或識別包含欄位cluster_id的 Azure Databricks 組態設定檔,以及您想要使用之支援的 Databricks 驗證類型所需的任何其他欄位。

      每個驗證類型的必要組態設定檔欄位如下所示:

      然後透過 DatabricksConfig 類別設定此組態配置檔的名稱。

      您可以透過幾種方式來指定 cluster_id ,如下所示:

      • cluster_id 組態配置檔中包含 字段,然後只指定組態配置檔的名稱。
      • 指定組態配置檔名稱以及 clusterId 欄位。

      如果您已經使用叢集標識符來設定 DATABRICKS_CLUSTER_ID 環境變數,則不需要指定 cluster_idclusterId 字段。

      下列每個方法的程式代碼如下:

      // 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環境變數

      針對此選項,請建立或識別包含欄位cluster_id的 Azure Databricks 組態設定檔,以及您想要使用之支援的 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

      針對此選項,請建立或識別包含欄位cluster_id的 Azure Databricks 組態設定檔,以及您想要使用之支援的 Databricks 驗證類型所需的任何其他欄位。

      如果您已經使用叢集識別元來設定 DATABRICKS_CLUSTER_ID 環境變數,則不需要指定 cluster_id

      每個驗證類型的必要組態設定檔欄位如下所示:

      將此組態設定檔 DEFAULT命名為 。

      然後初始化 類別, DatabricksSession 如下所示:

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