適用於 R 的 Databricks Connect

注意

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

如有問題,請前往 Posit 社群。

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

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

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 套件 的函式。

本文示範如何使用sparklyr和RStudio 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中clusters和configuration之間的字元字串。

步驟 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. 當在 [主控台] 檢視中 ([檢視 > 將焦點移至主控台]) 出現提示以繼續進行安裝時,請輸入 Y。 sparklyr 和 pysparklyr 套件及其相依性會安裝在 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 專案進行偵錯