分享方式:


適用於 R 的 Databricks Connect

注意

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

如有問題,請前往 Posit 社群

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

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

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

教學課程

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

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

需求

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

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

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

注意

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

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

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

若要建立個人存取令牌,請遵循適用於工作區使用者的 Azure Databricks 個人存取令牌中的步驟。

步驟 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 運行時間版本] 方塊。

    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 檔案中 ([檢視 > 將焦點移至來源]),輸入下列內容。 在此內容中,取代下列預留位置:

    • 以您的<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 專案進行偵錯