適用於 R 的 Databricks Connect
注意
本文涵蓋了 sparklyr
與 Databricks Runtime 13.0 和更新版本之 Databricks Connect 的整合。 此整合既不由 Databricks 提供,也不由 Databricks 直接支援。
如有問題,請前往 Posit 社群。
若要報告問題,請移至 GitHub 中 sparklyr
存放庫的 [問題] 區段。
如需詳細資訊,請參閱 sparklyr
文件中的 Databricks Connect v2。
本文示範如何使用 R、sparklyr
和 RStudio Desktop 快速開始使用 Databricks Connect。
- 如需本文的 Python 版本,請參閱配適用於 Python 的 Databricks。
- 如需本文的 Scala 版本,請參閱配適用於 Scala 的 Databricks。
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 中
clusters
和configuration
之間的字元字串。
步驟 1:建立個人存取權杖
注意
適用於 R 的 Databricks Connect 目前僅支援 Azure Databricks 個人存取權杖驗證。
本教學課程使用 Azure Databricks 個人存取權杖驗證,向 Azure Databricks 工作區進行驗證。
如果您已經有 Azure Databricks 個人存取權杖,請跳至步驟 2。 如果您不確定您是否已經有 Azure Databricks 個人存取權杖,可以遵循此步驟,而不會影響使用者帳戶中任何其他 Azure Databricks 個人存取權杖。
建立個人存取權杖:
- 在 Azure Databricks 工作區中,按一下頂端列中的 Azure Databricks 使用者名稱,然後從下拉式清單中選取 [設定]。
- 按一下 [開發人員]。
- 在 [存取權杖] 旁,按一下 [管理]。
- 按一下 產生新權杖。
- (選擇性) 輸入可協助您之後識別此權杖的註解,並變更權杖的預設存留期 90 天。 若要建立沒有存留期的權杖 (不建議),請將 [存留期 (天)] 方塊留空 (空白)。
- 按一下 產生。
- 將顯示的權杖複製到安全位置,然後選取 [完成]。
注意
請務必將複製的權杖儲存在安全位置。 請勿與其他人共用複製的權杖。 如果您遺失複製的權杖,就無法重新產生完全相同的權杖。 相反地,您必須重複此程序來建立新的權杖。 如果您遺失複製的權杖,或您認為權杖已遭入侵,Databricks 強烈建議您按一下 [存取權杖] 頁面上權杖旁邊的垃圾桶 (撤銷) 圖示,立即從工作區中刪除該權杖。
注意:如果您無法在工作區中建立或使用 PAT,這可能是因為您的工作區系統管理員已停用權杖,或未授與您建立或使用權杖的權限。 請諮詢您的工作區系統管理員或參閱下列主題:
步驟 2:建立專案
- 啟動 RStudio Desktop。
- 在主功能表,按下 [檔案 > 新增專案]。
- 選取 [新增目錄]。
- 選取 [新增專案]。
- 針對 [目錄名稱] 和 [建立專案作為子目錄],輸入新專案目錄的名稱和建立這個新專案目錄的位置。
- 選取 [在此專案中使用 renv]。 如果系統提示您安裝更新的
renv
套件版本,請按下 [是]。 - 按一下 [建立專案]。
步驟 3:新增 Databricks Connect 套件和其他相依性
在 [RStudio Desktop] 主功能表上,按下 [工具 > 安裝套件]。
將 [安裝自] 設定為 [存放庫 (CRAN)]。
針對 [套件],輸入下列套件清單,這些套件是 Databricks Connect 套件和本教學課程的必要條件:
sparklyr,pysparklyr,reticulate,usethis,dplyr,dbplyr
將 [安裝至程式庫] 設定為 R 虛擬環境。
請確定已選取 [安裝相依性]。
按一下 [安裝]。
當在 [主控台] 檢視中 ([檢視 > 將焦點移至主控台]) 出現提示以繼續進行安裝時,請輸入
Y
。sparklyr
和pysparklyr
套件及其相依性會安裝在 R 虛擬環境中。在 [主控台] 窗格中,使用
reticulate
執行下列命令來安裝 Python。 適用於 R 的 Databricks Connect 需要先安裝reticulate
和 Python。) 在下列命令中,將3.10
取代為您 Azure Databricks 叢集上安裝的主要和次要 Python 版本。 若要尋找這個主要和次要版本,請參閱 Databricks Runtime 版本資訊版本和相容性中叢集 Databricks Runtime 版本的「系統環境」一節。reticulate::install_python(version = "3.10")
在 [主控台] 窗格中,執行下列命令來安裝 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
檔案中。
建立
.Renviron
檔案來儲存環境變數,如果此檔案尚不存在,則開啟此檔案進行編輯:在 RStudio Desktop [主控台] 中,執行下列命令:usethis::edit_r_environ()
在出現的
.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>
- 以您的個別工作區 URL 取代
儲存
.Renviron
檔案。將環境變數載入 R:在主功能表上,按下 [工作階段 > 重新啟動 R]。
步驟 5:新增程式碼
在 [RStudio Desktop] 主功能表上,按下 [檔案 > 新檔案 > R 指令碼]。
將下列程式碼輸入檔案,然後將檔案儲存為 ([檔案 > 儲存])
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:執行程式碼
在 RStudio Desktop 上,
demo.R
檔案的工具列中,按下 [來源]。在 [主控台] 中,
trips
資料表的前五個資料列隨即出現。在 [連線] 檢視 ([檢視] > 顯示連線]) 中,您可以探索可用的目錄、結構描述、資料表和檢視。
步驟 7:偵錯程式碼
- 在
demo.R
檔案中,按下print(trips, n = 5)
旁的裝訂邊,以設定中斷點。 - 在
demo.R
檔案的工具列中,按下 [來源]。 - 當程式碼在中斷點暫停執行時,您可以在 [環境] 檢視 ([檢視 > 顯示環境]) 中檢查變數。
- 在主功能表上,按下 [偵錯 > 繼續]。
- 在 [主控台] 中,
trips
資料表的前五個資料列隨即出現。