適用於 Scala 的 Databricks Connect
注意
本文涵蓋 Databricks Runtime 13.3 LTS 和更新版本適用的 Databricks Connect。
本文示範如何使用 Scala 搭配 IntelliJ IDEA 和 Scala 外掛程式,快速開始使用 Databricks Connect。
- 如需本文的 Python 版本,請參閱配適用於 Python 的 Databricks。
- 如需本文的 R 版本,請參閱 Databricks Connect for R。
Databricks Connect 可讓您將熱門 IDE,例如 IntelliJ IDEA、Notebook 伺服器和其他自定義應用程式連線到 Azure Databricks 叢集。 請參閱什麼是 Databricks Connect?。
教學課程
若要略過本教學課程並使用不同的 IDE,請參閱 後續步驟。
需求
您必須滿足下列需求,才能完成本教學課程:
您的目標 Azure Databricks 工作區和叢集必須符合 Databricks Connect 的計算組態需求。
您必須有叢集識別碼可供使用。 若要取得叢集標識碼,請在工作區中按下側邊欄上的 [計算],然後按下叢集的名稱。 在網頁瀏覽器的網址列中,複製 URL 中
clusters
和configuration
之間的字元字串。您已在開發電腦上安裝 Java 開發工具套件 (JDK)。 Databricks 建議您使用的 JDK 安裝版本符合 Azure Databricks 叢集上的 JDK 版本。 下表顯示每個支援的 Databricks Runtime 的 JDK 版本。
Databricks Runtime 版本 JDK 版本 13.3 LTS - 15.0,
13.3 ML LTS - 15.0 MLJDK 8 16.0 JDK 17 注意
如果您沒有安裝 JDK,或在開發電腦上安裝多個 JDK,您可以在步驟 1 稍後安裝或選擇特定的 JDK。 選擇叢集上 JDK 版本低於或高於 JDK 版本的 JDK 安裝可能會產生非預期的結果,或您的程式代碼可能完全無法執行。
您已安裝 IntelliJ IDEA 。 本教學課程已使用 IntelliJ IDEA Community Edition 2023.3.6 進行測試。 如果您使用不同版本的 IntelliJ IDEA,下列指示可能會有所不同。
您已安裝適用於 IntelliJ IDEA 的 Scala 外掛程式 。
步驟 1:設定 Azure Databricks 驗證
本教學課程使用 Azure Databricks OAuth 使用者對機器 (U2M) 驗證和 Azure Databricks 組態配置檔,以向 Azure Databricks 工作區進行驗證。 若要改用不同的驗證類型,請參閱 設定連線屬性。
設定 OAuth U2M 驗證需要 Databricks CLI,如下所示:
如果尚未安裝,請安裝 Databricks CLI ,如下所示:
Linux、macOS
執行下列兩個命令,使用 Homebrew 安裝 Databricks CLI:
brew tap databricks/tap brew install databricks
Windows
您可以使用 winget、Chocolatey 或 Windows 子系統 Linux 版 (WSL) 來安裝 Databricks CLI。 如果您無法使用
winget
、Chocolatey 或 WSL,您應該略過此程式,並使用命令提示字元或 PowerShell 來改為從來源 安裝 Databricks CLI。注意
使用 Chocolatey 安裝 Databricks CLI 是 實驗性的。
若要使用
winget
來安裝 Databricks CLI,請執行下列兩個命令,然後重新啟動命令提示字元:winget search databricks winget install Databricks.DatabricksCLI
若要使用 Chocolatey 安裝 Databricks CLI,請執行下列命令:
choco install databricks-cli
若要使用 WSL 來安裝 Databricks CLI:
安裝
curl
並zip
透過 WSL。 如需詳細資訊,請參閱操作系統的檔。執行下列命令,使用 WSL 安裝 Databricks CLI:
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
執行下列命令來確認已安裝 Databricks CLI,其中顯示已安裝 Databricks CLI 的目前版本。 此版本應該是 0.205.0 或更新版本:
databricks -v
注意
如果您執行
databricks
但收到錯誤,例如command not found: databricks
,或如果您執行databricks -v
且版本號碼為 0.18 或以下,則表示您的電腦找不到正確的 Databricks CLI 可執行檔版本。 若要修正此問題,請參閱 確認 CLI 安裝。
起始 OAuth U2M 驗證,如下所示:
針對每個目標工作區執行下列命令,使用 Databricks CLI 在本機起始 OAuth 權杖管理。
在下列命令中,將
<workspace-url>
取代為您的 Azure Databricks 個別工作區網址,例如https://adb-1234567890123456.7.azuredatabricks.net
。databricks auth login --configure-cluster --host <workspace-url>
Databricks CLI 會提示您儲存輸入為 Azure Databricks 組態設定檔的資訊。 按
Enter
以接受建議的設定檔名稱,或輸入新或現有設定檔的名稱。 任何具有相同名稱的現有設定檔,會以您輸入的資訊覆寫。 您可使用設定檔,在多個工作區之間快速切換驗證內容。若要取得任何現有設定檔的清單,請在個別的終端機或命令提示字元中,使用 Databricks CLI 來執行
databricks auth profiles
命令。 若要檢視特定設定檔的現有設定,請執行databricks auth env --profile <profile-name>
命令。在網頁瀏覽器中,完成畫面上的指示,登入 Azure Databricks 工作區。
在終端機或命令提示字元中出現的可用叢集清單中,使用向上鍵和向下鍵來選取工作區中的目標 Azure Databricks 叢集,然後按
Enter
。 您也可以鍵入叢集顯示名稱的任何部分,以篩選可用叢集的清單。若要檢視設定檔目前的 OAuth 權杖值和權杖即將到期的時間戳記,請執行下列其中一個命令:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
如果您有多個具有相同
--host
值的設定檔,您可能需要一起指定--host
和-p
選項,以協助 Databricks CLI 尋找正確的相符 OAuth 權杖資訊。
步驟 2:建立專案
啟動 IntelliJ IDEA。
在主功能表上,按兩下 [ 檔案 > 新 > 專案]。
為您的專案提供一些有意義的 名稱。
針對 [位置],按兩下資料夾圖示,然後完成螢幕上的指示,以指定新 Scala 項目的路徑。
針對 [ 語言],按兩下 [ Scala]。
針對 [建置系統],按兩下 [sbt]。
在 [ JDK ] 下拉式清單中,選取與叢集上 JDK 版本相符的開發計算機上現有的 JDK 安裝,或選取 [ 下載 JDK],然後依照螢幕上的指示下載符合您叢集上 JDK 版本的 JDK 。
注意
選擇叢集上或低於 JDK 版本的 JDK 安裝可能會產生非預期的結果,或您的程式代碼可能完全無法執行。
在 sbt 下拉式列表中,選取最新版本。
在 [ Scala ] 下拉式清單中,選取符合叢集上 Scala 版本的 Scala 版本。 下表顯示每個支援的 Databricks Runtime 的 Scala 版本:
Databricks Runtime 版本 Scala 版本 13.3 LTS - 15.0,
13.3 ML LTS - 15.0 ML2.12.15 注意
選擇叢集上 Scala 版本低於或高於 Scala 版本的 Scala 版本可能會產生非預期的結果,或您的程式代碼可能完全無法執行。
確定已核取 Scala 旁的 [下載來源] 方塊。
針對 [套件前置詞],輸入專案來源的一些套件前置詞值,例如
org.example.application
。確定已核取 [ 新增範例程序代碼 ] 方塊。
按一下 [建立]。
步驟 3:新增 Databricks Connect 套件
開啟新的 Scala 專案後,在專案工具視窗中(檢視>工具 Windows > 專案),在專案名稱>目標中開啟名為
build.sbt
的檔案。將下列程式代碼新增至檔案結尾
build.sbt
,這會宣告專案相依於 Scala 的特定 Databricks Connect 連結庫版本:libraryDependencies += "com.databricks" % "databricks-connect" % "14.3.1"
將 取代
14.3.1
為符合叢集上 Databricks Runtime 版本的 Databricks Connect 連結庫版本。 您可以在 Maven 中央存放庫中找到 Databricks Connect 連結庫版本號碼。按兩下 [ 載入 sbt 變更 通知] 圖示,以新的連結庫位置和相依性更新 Scala 專案。
等到
sbt
IDE 底部的進度指示器消失為止。sbt
載入程式可能需要幾分鐘的時間才能完成。
步驟 4:新增程序代碼
在 Project 工具視窗中,在專案名稱> src > 主要 > scala 中開啟名為
Main.scala
的檔案。將檔案中的任何現有程式代碼取代為下列程式代碼,然後根據組態配置檔的名稱儲存盤案。
如果步驟 1 的組態設定檔名為
DEFAULT
,請將檔案中的任何現有程式代碼取代為下列程式代碼,然後儲存盤案:package org.example.application import com.databricks.connect.DatabricksSession import org.apache.spark.sql.SparkSession object Main { def main(args: Array[String]): Unit = { val spark = DatabricksSession.builder().remote().getOrCreate() val df = spark.read.table("samples.nyctaxi.trips") df.limit(5).show() } }
如果步驟 1 的組態設定檔未命名
DEFAULT
為 ,請改用下列程式代碼取代 檔案中的任何現有程式代碼。 將佔位元<profile-name>
取代為步驟 1 的組態設定檔名稱,然後儲存盤案:package org.example.application import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig import org.apache.spark.sql.SparkSession object Main { def main(args: Array[String]): Unit = { val config = new DatabricksConfig().setProfile("<profile-name>") val spark = DatabricksSession.builder().sdkConfig(config).getOrCreate() val df = spark.read.table("samples.nyctaxi.trips") df.limit(5).show() } }
步驟 5:執行程序代碼
- 在遠端 Azure Databricks 工作區中啟動目標叢集。
- 叢集啟動之後,在主功能表上,按兩下 [ 執行 > ][主要] 。
- 在 [執行工具] 視窗 (檢視>工具視窗>執行) 的 [主要] 索引標籤上,數據表的前 5 個資料列
samples.nyctaxi.trips
隨即出現。
步驟 6:偵錯程序代碼
- 當目標叢集仍在執行時,在上述程式代碼中,按兩下旁
df.limit(5).show()
的裝訂線以設定斷點。 - 在主功能表上,按兩下 [執行 > 偵錯 'Main']。
- 在 [偵錯工具] 視窗 (檢視>工具視窗>偵錯) 的 [控制台] 索引標籤上,按兩下計算機 (評估表示式) 圖示。
- 輸入表達式
df.schema
,然後按兩下 [評估 ] 以顯示DataFrame的架構。 - 在 [ 偵 錯工具] 視窗的提要字段中,按兩下綠色箭號 (繼續程式) 圖示。
- 在 [ 控制台] 窗格中,數據表的前 5 個數據列
samples.nyctaxi.trips
隨即出現。
下一步
若要深入瞭解 Databricks Connect,請參閱下列文章:
若要使用 Azure Databricks 個人存取令牌以外的 Azure Databricks 驗證類型,請參閱 設定連線屬性。
若要使用其他 IDE,請參閱下列各項:
若要檢視其他簡單的程式代碼範例,請參閱 Databricks Connect for Scala 的程式碼範例。
若要檢視更複雜的程式代碼範例,請參閱 GitHub 中 Databricks Connect 存放庫的範例應用程式,特別是:
若要從 Databricks Runtime 12.2 LTS 的 Databricks Connect 移轉至 Databricks Connect for Databricks Runtime 13.3 LTS 和更新版本,請參閱 遷移至適用於 Scala 的 Databricks Connect。