分享方式:


適用於 R 的 Databricks Connect

注意

本文涵蓋了 sparklyr 與 Databricks Runtime 13.0 和更新版本之 Databricks Connect 的整合。 此整合既不由 Databricks 提供,也不由 Databricks 直接支援。

如有問題,請前往 Posit 社群

若要報告問題,請移至 GitHub 中 sparklyr 存放庫的 [問題] 區段。

如需詳細資訊,請參閱 sparklyr 文件中的 Databricks Connect v2

本文示範如何使用 R、sparklyrRStudio Desktop 快速開始使用 Databricks Connect。

Databricks Connect 可讓您將熱門 IDE 連線到 Azure Databricks 叢集,例如 RStudio Desktop、筆記本伺服器和其他自訂應用程式。 請參閱什麼是 Databricks Connect?

教學課程

本教學課程使用 RStudio Desktop 和 Python 3.10。 如果您尚未安裝它們,請安裝 R 和 RStudio Desktop 以及 Python 3.10。

如需本教學課程的補充資訊,請參閱 sparklyr 網站上 Spark Connect 和 Databricks Connect v2 的「Databricks Connect」一節。

需求

您必須滿足下列需求,才能完成本教學課程:

  • 您的目標 Azure Databricks 工作區和叢集必須符合 Databricks Connect 的叢集設定需求。
  • 您必須有叢集識別碼可供使用。 若要取得叢集標識碼,請在工作區中按下側邊欄上的 [計算],然後按下叢集的名稱。 在網頁瀏覽器的網址列中,複製 URL 中 clustersconfiguration 之間的字元字串。

步驟 1:建立個人存取權杖

注意

適用於 R 的 Databricks Connect 目前僅支援 Azure Databricks 個人存取權杖驗證。

本教學課程使用 Azure Databricks 個人存取權杖驗證,向 Azure Databricks 工作區進行驗證。

如果您已經有 Azure Databricks 個人存取權杖,請跳至步驟 2。 如果您不確定您是否已經有 Azure Databricks 個人存取權杖,可以遵循此步驟,而不會影響使用者帳戶中任何其他 Azure Databricks 個人存取權杖。

建立個人存取權杖:

  1. 在 Azure Databricks 工作區中,按一下頂端列中的 Azure Databricks 使用者名稱,然後從下拉式清單中選取 [設定]
  2. 按一下 [開發人員]
  3. 在 [存取權杖] 旁,按一下 [管理]
  4. 按一下 產生新權杖
  5. (選擇性) 輸入可協助您之後識別此權杖的註解,並變更權杖的預設存留期 90 天。 若要建立沒有存留期的權杖 (不建議),請將 [存留期 (天)] 方塊留空 (空白)。
  6. 按一下 產生
  7. 將顯示的權杖複製到安全位置,然後選取 [完成]

注意

請務必將複製的權杖儲存在安全位置。 請勿與其他人共用複製的權杖。 如果您遺失複製的權杖,就無法重新產生完全相同的權杖。 相反地,您必須重複此程序來建立新的權杖。 如果您遺失複製的權杖,或您認為權杖已遭入侵,Databricks 強烈建議您按一下 [存取權杖] 頁面上權杖旁邊的垃圾桶 (撤銷) 圖示,立即從工作區中刪除該權杖。

注意:如果您無法在工作區中建立或使用 PAT,這可能是因為您的工作區系統管理員已停用權杖,或未授與您建立或使用權杖的權限。 請諮詢您的工作區系統管理員或參閱下列主題:

步驟 2:建立專案

  1. 啟動 RStudio Desktop。
  2. 在主功能表,按下 [檔案 > 新增專案]
  3. 選取 [新增目錄]
  4. 選取 [新增專案]
  5. 針對 [目錄名稱] 和 [建立專案作為子目錄],輸入新專案目錄的名稱和建立這個新專案目錄的位置。
  6. 選取 [在此專案中使用 renv]。 如果系統提示您安裝更新的 renv 套件版本,請按下 [是]
  7. 按一下 [建立專案]

建立 RStudio Desktop 專案

步驟 3:新增 Databricks Connect 套件和其他相依性

  1. 在 [RStudio Desktop] 主功能表上,按下 [工具 > 安裝套件]

  2. 將 [安裝自] 設定為 [存放庫 (CRAN)]

  3. 針對 [套件],輸入下列套件清單,這些套件是 Databricks Connect 套件和本教學課程的必要條件:

    sparklyr,pysparklyr,reticulate,usethis,dplyr,dbplyr
    
  4. 將 [安裝至程式庫] 設定為 R 虛擬環境。

  5. 請確定已選取 [安裝相依性]

  6. 按一下 [安裝]

安裝 Databricks Connect 套件相依性

  1. 當在 [主控台] 檢視中 ([檢視 > 將焦點移至主控台]) 出現提示以繼續進行安裝時,請輸入 Ysparklyrpysparklyr 套件及其相依性會安裝在 R 虛擬環境中。

  2. 在 [主控台] 窗格中,使用 reticulate 執行下列命令來安裝 Python。 適用於 R 的 Databricks Connect 需要先安裝 reticulate 和 Python。) 在下列命令中,將 3.10 取代為您 Azure Databricks 叢集上安裝的主要和次要 Python 版本。 若要尋找這個主要和次要版本,請參閱 Databricks Runtime 版本資訊版本和相容性中叢集 Databricks Runtime 版本的「系統環境」一節。

    reticulate::install_python(version = "3.10")
    
  3. 在 [主控台] 窗格中,執行下列命令來安裝 Databricks Connect 套件。 在下列命令中,將 13.3 取代為您 Azure Databricks 叢集上安裝的 Databricks Runtime 版本。 若要尋找此版本,請在 Azure Databricks 工作區的叢集詳細資料頁面上,於 [組態] 索引標籤上,查看 [Databricks Runtime 版本] 方塊。

    pysparklyr::install_databricks(version = "13.3")
    

    如果您不知道叢集的 Databricks Runtime 版本,或不想查閱,可以改為執行下列命令,並且 pysparklyr 查詢叢集,以判斷要使用的正確 Databricks Runtime 版本:

    pysparklyr::install_databricks(cluster_id = "<cluster-id>")
    

    如果您想要稍後將專案連線到與您剛才指定的相同 Databricks Runtime 版本不同的叢集,pysparklyr 將會使用相同的 Python 環境。 如果新叢集有不同的 Databricks Runtime 版本,您應該使用新的 Databricks Runtime 版本或叢集識別碼來再次執行 pysparklyr::install_databricks 命令。

步驟 4:設定工作區 URL、存取權杖和叢集識別碼的環境變數

Databricks 不建議您將值 (例如您的 Azure Databricks 工作區 URL、Azure Databricks 個人存取權杖或 Azure Databricks 叢集識別碼) 硬式編碼或變更成 R 指令碼。 請改為單獨儲存這些值,例如在本機環境變數中。 本教學課程使用 RStudio Desktop 的內建支援,將環境變數儲存在 .Renviron 檔案中。

  1. 建立 .Renviron 檔案來儲存環境變數,如果此檔案尚不存在,則開啟此檔案進行編輯:在 RStudio Desktop [主控台] 中,執行下列命令:

    usethis::edit_r_environ()
    
  2. 在出現的 .Renviron 檔案中 ([檢視 > 將焦點移至來源]),輸入下列內容。 在此內容中,取代下列預留位置:

    • 以您的個別工作區 URL 取代 <workspace-url>,例如 https://adb-1234567890123456.7.azuredatabricks.net
    • 透過步驟 1,以您的 Azure Databricks 個人存取權杖取代 <personal-access-token>
    • <cluster-id> 取代為您在本教學課程需求中的叢集識別碼。
    DATABRICKS_HOST=<workspace-url>
    DATABRICKS_TOKEN=<personal-access-token>
    DATABRICKS_CLUSTER_ID=<cluster-id>
    
  3. 儲存.Renviron檔案。

  4. 將環境變數載入 R:在主功能表上,按下 [工作階段 > 重新啟動 R]

設定 Databricks Connect 的環境變數

步驟 5:新增程式碼

  1. 在 [RStudio Desktop] 主功能表上,按下 [檔案 > 新檔案 > R 指令碼]

  2. 將下列程式碼輸入檔案,然後將檔案儲存為 ([檔案 > 儲存]) demo.R

    library(sparklyr)
    library(dplyr)
    library(dbplyr)
    
    sc <- sparklyr::spark_connect(
      master     = Sys.getenv("DATABRICKS_HOST"),
      cluster_id = Sys.getenv("DATABRICKS_CLUSTER_ID"),
      token      = Sys.getenv("DATABRICKS_TOKEN"),
      method     = "databricks_connect",
      envname    = "r-reticulate"
    )
    
    trips <- dplyr::tbl(
      sc,
      dbplyr::in_catalog("samples", "nyctaxi", "trips")
    )
    
    print(trips, n = 5)
    

步驟 6:執行程式碼

  1. 在 RStudio Desktop 上,demo.R 檔案的工具列中,按下 [來源]

    執行 RStudio Desktop 專案

  2. 在 [主控台] 中,trips 資料表的前五個資料列隨即出現。

  3. 在 [連線] 檢視 ([檢視] > 顯示連線]) 中,您可以探索可用的目錄、結構描述、資料表和檢視。

    專案的 [連線] 檢視

步驟 7:偵錯程式碼

  1. demo.R 檔案中,按下 print(trips, n = 5) 旁的裝訂邊,以設定中斷點。
  2. demo.R 檔案的工具列中,按下 [來源]
  3. 當程式碼在中斷點暫停執行時,您可以在 [環境] 檢視 ([檢視 > 顯示環境]) 中檢查變數。
  4. 在主功能表上,按下 [偵錯 > 繼續]
  5. 在 [主控台] 中,trips 資料表的前五個資料列隨即出現。

對 RStudio Desktop 專案進行偵錯