適用於 R 的 Databricks Connect

注意

本文探討 sparklyr 與適用於 Databricks Runtime 13.0 及更高版本的 Databricks Connect 之整合。 此整合既不由 Databricks 提供,也不由 Databricks 直接支援。

如有問題,請前往 Posit 社群

若要回報問題,請前往 GitHub 倉庫的 sparklyr 區塊。

如需詳細資訊,請參閱 Databricks Connect v2sparklyr 文件中的說明。

Databricks Connect 讓你能將熱門的 IDE 如 RStudio Desktop、筆記型電腦伺服器及其他自訂應用程式連接到 Azure Databricks 叢集。 請參閱 Databricks Connect

注意

Databricks Connect 與 Apache Spark MLlib 的相容性有限,因為 Spark MLlib 使用 RDD,而 Databricks Connect 僅支援 DataFrame API。 若要使用 sparklyr 的所有 Spark MLlib 函式,請使用 Databricks 筆記本或 db_replbrickster 套件 的函式。

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

  • 關於 Databricks Connect 的 Python,請參見 Databricks Connect for Python
  • 如需了解 Scala 的 Databricks Connect,請參閱「Databricks Connect for Scala」。

教學

在下列教學課程中,您會在 RStudio 中建立專案、安裝及設定 Databricks Connect for Databricks Runtime 13.3 LTS 和更新版本,並從 RStudio 在您的 Databricks 工作區中執行簡單的程式代碼。 如需本教學課程的補充資訊,請參閱 Spark Connect 和 Databricks Connect v2 的「Databricks Connect」一節,位於 sparklyr 網站。

本教學使用 RStudio Desktop 與 Python 3.10。 如果你還沒安裝過,請先安裝R 和 RStudio Desktop,以及 Python 3.10。

需求

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

  • 您的目標 Azure Databricks 工作空間和叢集必須符合 Databricks Connect 計算配置的要求。
  • 您必須有叢集 ID 可供使用。 若要取得集群ID,請在工作區側邊欄中點擊 計算,然後點擊您的集群名稱。 在您的網頁瀏覽器的網址列中,複製URL中clustersconfiguration之間的字元字串。

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

注意

Databricks Connect for R 認證目前僅支援 Azure Databricks 個人存取權杖。

這個教學使用 Azure Databricks 個人存取權杖認證來與你的Azure Databricks工作區進行認證。

如果你已經有 Azure Databricks 個人存取權杖,請跳到步驟 2。 如果你不確定自己是否已經有 Azure Databricks 個人存取權杖,可以依照此步驟操作,而不會影響你使用者帳號中其他 Azure Databricks 個人存取權杖。

若要建立個人存取權杖,請遵循為 工作區使用者建立個人存取權杖中的步驟。

步驟 2:建立專案

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

建立 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. Console 面板中,使用 reticulate 執行以下指令安裝 Python。 (Databricks Connect for R 需要先安裝 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 執行時版本。 要找到這個版本,可以在你Azure Databricks工作區的叢集詳情頁面,Configuration 標籤中,請參考 Databricks 執行時版本框。

    pysparklyr::install_databricks(version = "13.3")
    

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

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

    如果你想讓專案之後連接到另一個叢集,且該叢集的 Databricks 執行時版本與你剛剛指定的相同,pysparklyr 會使用相同的 Python 環境。 如果新叢集有不同的 Databricks Runtime 版本,您應該使用新的 Databricks Runtime 版本或叢集識別碼來再次執行 pysparklyr::install_databricks 命令。

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

Databricks 不建議你在 R 腳本中硬編碼敏感或變動的值,例如 Azure Databricks 工作區 URL、Azure Databricks 個人存取權杖或 Azure Databricks 叢集 ID。 請改為單獨儲存這些值,例如在本機環境變數中。 本教學課程使用 RStudio Desktop 的內建支援,將環境變數儲存在檔案中 .Renviron

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

    usethis::edit_r_environ()
    
  2. 在出現的 .Renviron 檔案中 ([檢視 > 將焦點移至來源]),輸入下列內容。 在此內容中,請替換下列佔位符:

    • 用您的<workspace-url>取代,例如https://adb-1234567890123456.7.azuredatabricks.net
    • <personal-access-token> 替換成你在第 1 步的 Azure Databricks 個人存取權杖。
    • 使用您在本教學課程需求中的叢集標識碼取代 <cluster-id>
    DATABRICKS_HOST=<workspace-url>
    DATABRICKS_TOKEN=<personal-access-token>
    DATABRICKS_CLUSTER_ID=<cluster-id>
    
  3. 儲存.Renviron檔案。

  4. 將環境變數載入 R:在主功能表上,按下 [Session]> [重新啟動 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 專案進行偵錯