Databricks Connect for R
注意
本文涵蓋 sparklyr
與 Databricks Runtime 13.0 和更新版本之 Databricks Connect 的整合。 此整合既不是由 Databricks 提供,也不是由 Databricks 直接支援。
如需問題,請前往 Posit 社群。
若要回報問題,請移至 GitHub 中存放庫的 sparklyr
[問題] 區段。
如需詳細資訊,請參閱檔中的 sparklyr
Databricks Connect v2。
本文示範如何使用 R、 sparklyr
、 和 RStudio Desktop 快速開始使用 Databricks Connect。
- 如需本文的 Python 版本,請參閱 Databricks Connect for Python。
- 如需本文的 Scala 版本,請參閱 Databricks Connect for Scala。
Databricks Connect 可讓您將熱門 IDE,例如 RStudio Desktop、Notebook 伺服器和其他自定義應用程式連線到 Azure Databricks 叢集。 請參閱 什麼是 Databricks Connect?。
教學課程
本教學課程使用 RStudio Desktop 和 Python 3.10。 如果您尚未安裝它們, 請安裝 R 和 RStudio Desktop 和 Python 3.10。
如需本教學課程的補充資訊,請參閱網站上的 Spark Connect 和 Databricks Connect v2 的sparklyr
需求
若要完成本教學課程,您必須符合下列需求:
- 您的目標 Azure Databricks 工作區和叢集必須符合 Databricks Connect 叢集設定的需求。
- 您必須有叢集識別碼可供使用。 若要取得叢集標識碼,請在工作區中按兩下 提要字段上的 [計算 ],然後按兩下叢集的名稱。 在網頁瀏覽器的網址列中,複製URL和之間的
clusters
configuration
字元字串。
步驟 1:建立個人存取令牌
注意
Databricks Connect for R 驗證目前僅支援 Azure Databricks 個人存取令牌。
本教學課程使用 Azure Databricks 個人存取令牌驗證 ,向 Azure Databricks 工作區進行驗證。
如果您已經有 Azure Databricks 個人存取令牌,請跳至步驟 2。 如果您不確定您是否已經有 Azure Databricks 個人存取令牌,您可以遵循此步驟,而不會影響使用者帳戶中任何其他 Azure Databricks 個人存取令牌。
若要建立個人存取令牌:
- 在 Azure Databricks 工作區中,按兩下頂端列中的 Azure Databricks 使用者名稱,然後從下拉式清單中選取 [設定 ]。
- 按兩下 [ 開發人員]。
- 按兩下 [存取令牌] 旁的 [管理]。
- 按一下 [產生新權杖]。
- (選擇性)輸入批注,協助您在未來識別此令牌,並變更令牌的預設存留期 90 天。 若要建立沒有存留期的令牌(不建議),請將 [ 存留期(天)] 方塊保留空白(空白)。
- 按一下 [產生]。
- 將顯示的令牌複製到安全的位置,然後按兩下 [ 完成]。
注意
請務必將複製的令牌儲存在安全的位置。 請勿與其他人共享複製的令牌。 如果您遺失複製的令牌,就無法重新產生完全相同的令牌。 相反地,您必須重複此程式來建立新的令牌。 如果您遺失複製的令牌,或您認為令牌已遭入侵,Databricks 強烈建議您按兩下存取令牌頁面上令牌旁邊的垃圾桶 (Revoke) 圖示,立即從工作區中刪除該令牌。
如果您無法在工作區中建立或使用令牌,這可能是因為您的工作區系統管理員已停用令牌,或未授與您建立或使用令牌的許可權。 請參閱您的工作區管理員或下列專案:
步驟 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 的reticulate
Databricks Connect 需要先安裝 Python。)在下列命令中,將 取代3.10
為您 Azure Databricks 叢集上安裝的主要和次要 Python 版本。 若要尋找這個主要和次要版本,請參閱 Databricks Runtime 版本資訊版本和相容性中叢集 Databricks Runtime 版本的「系統環境」一節。reticulate::install_python(version = "3.10")
在控制檯窗格中,執行下列命令來安裝 Databricks Connect 套件。 在下列命令中,將 取代
13.3
為您 Azure Databricks 叢集上安裝的 Databricks 運行時間版本。 若要尋找此版本,請在 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
。
建立檔案
.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
隨即出現。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應