RStudio在Databricks上
你可以用RStudio的集成開發環境(IDE),以連接到Databricks工作空間內的Databricks計算資源。你可以用RStudio桌麵連接到數據庫集群或者一個SQL倉庫從您的本地開發機器。還可以使用web瀏覽器登錄到Databricks工作空間,然後連接到具有RStudio服務器已安裝,在該工作區中。
RStudio桌麵
你可以用RStudio桌麵從本地開發機器連接到遠程Databricks集群或SQL倉庫。要在此場景中進行連接,您可以使用ODBC連接並為R調用ODBC包函數,這些函數將在本節中描述。
請注意
您不能使用諸如SparkR或sparklyr在這個RStudio Desktop場景中,除非您也使用磚連接.作為使用RStudio Desktop的替代方案,您可以使用web瀏覽器登錄到您的Databricks工作空間,然後連接到具有RStudio服務器安裝在該工作區中。
在本地開發機器上設置RStudio桌麵:
啟動RStudio Desktop。
(可選)創建RStudio項目:
啟動RStudio Desktop。
點擊>新建項目文件.
選擇新建目錄>新建項目.
為項目選擇一個新目錄,然後單擊創建項目.
創建一個R腳本:
打開項目後,單擊文件>新建文件> R腳本.
點擊文件>另存為.
命名該文件,然後單擊保存.
通過ODBC連接到遠程Databricks集群或SQL倉庫。
得到了服務器主機名,港口,HTTP路徑您的遙控器的值集群或SQL倉庫.對於集群,這些值位於JDBC / ODBC選項卡的高級選項.對於SQL倉庫,這些值位於連接細節選項卡。
買一個數據庫個人訪問令牌.
請注意
作為安全最佳實踐,當使用自動化工具、係統、腳本和應用程序進行身份驗證時,Databricks建議您使用屬於服務主體而不是工作區用戶。要為服務主體創建訪問令牌,請參見管理服務主體的訪問令牌.
從RStudio控製台(查看>將焦點移動到控製台),安裝odbc而且DBI包從凹口.下麵的示例使用凹口快照過時的
2022-02-24
:install.packages(c(“odbc”,“DBI”),回購=“https://cran.microsoft.com/snapshot/2022-02-24/”)
回到你的R腳本(查看>移動焦點到源),加載已安裝的
odbc
而且DBI
包:圖書館(odbc)圖書館(DBI)
的ODBC版本調用dbConnect功能
DBI
包,指定odbc
司機在odbc
包以及您創建的ODBC DSN,例如,的ODBC DSN磚
.康涅狄格州=dbConnect(drv=odbc(),dsn=“磚”)
通過ODBC DSN調用一個操作,例如a
選擇
聲明通過dbGetQuery功能DBI
包,指定連接變量的名稱和選擇
語句本身,例如從一個名為鑽石
在命名為默認的
:打印(dbGetQuery(康涅狄格州,"SELECT * FROM default. "鑽石限量2"))
完整的R腳本如下:
圖書館(odbc)圖書館(DBI)康涅狄格州=dbConnect(drv=odbc(),dsn=“磚”)打印(dbGetQuery(康涅狄格州,"SELECT * FROM default. "鑽石限量2"))
要運行腳本,請在源視圖中單擊源.以上R腳本的結果如下所示:
_c0克拉切色清晰度深度表價格x y z 1 1 0.23理想E SI2 61.5 55 326 3.95 3.98 2.43 2 2 0.21高級E SI1 59.8 61 326 3.89 3.84 2.31
RStudio服務器
您可以使用web瀏覽器登錄到您的Databricks工作空間,然後連接到具有RStudio服務器已安裝,在該工作區中。
請注意
作為RStudio Server的替代方案,您可以使用RStudio桌麵通過ODBC連接從本地開發機器連接到Databricks集群或SQL倉庫,並為r調用ODBC包函數SparkR或sparklyr在RStudio Desktop場景中,除非您也使用磚連接.
對於RStudio Server,您可以在Databricks上使用開源版或RStudio Workbench(以前的RStudio Server Pro)版本。如果您想使用RStudio Workbench / RStudio Server Pro,您必須將您現有的RStudio Workbench / RStudio Server Pro許可證轉讓給Databricks(參見開始使用RStudio Workbench(以前的RStudio Server Pro)).
Databricks建議您在帶有RStudio Server的Databricks集群上使用Databricks Runtime for Machine Learning (Databricks Runtime ML),以減少集群啟動時間。Databricks Runtime ML包含一個未修改的RStudio服務器開源版包,其源代碼可以在其中找到GitHub.下表列出了目前預安裝在Databricks Runtime ML版本上的RStudio Server Open Source Edition的版本。
Databricks運行時的ML版本 |
RStudio服務器版本 |
---|---|
Databricks Runtime 7.3 LTS ML |
1.2 |
Databricks運行時9.1 LTS ML和10.4 LTS ML |
1.4 |
RStudio集成架構
當您在Databricks上使用RStudio Server時,RStudio Server Daemon運行在Databricks集群的驅動節點上。RStudio web UI是通過Databricks webapp代理的,這意味著您不需要對集群網絡配置進行任何更改。此圖演示了RStudio集成組件體係結構。
警告
Databricks從集群的Spark驅動程序的8787端口代理RStudio web服務。此web代理僅用於RStudio。如果您在端口8787上啟動其他web服務,您可能會將用戶暴露於潛在的安全漏洞中。Databricks不負責由於在集群上安裝不支持的軟件而導致的任何問題。
從RStudio服務器開源版開始
重要的
如果您使用的是Databricks Runtime 7.0 ML或以上版本,則已經安裝了RStudio Server Open Source Edition。您可以跳過安裝RStudio Server這一節,直接跳到下麵使用RStudio服務器開源版.
要開始使用Databricks上的RStudio服務器開源版,必須在Databricks集群上安裝RStudio。您隻需要執行一次此安裝。安裝通常由管理員執行。
安裝RStudio服務器開放源碼版
要在使用Databricks Runtime 6.6 ML或以下版本的Databricks集群上設置RStudio Server Open Source Edition,必須創建一個初始化腳本來安裝RStudio Server Open Source Edition二進製包。有關更多信息,請參見集群範圍內的初始化腳本.下麵是一個示例筆記本單元格,它將初始化腳本安裝到DBFS上的某個位置。
重要的
所有用戶都有對DBFS的讀寫訪問,因此任何用戶都可以修改初始化腳本。如果這對您來說是一個潛在的問題,Databricks建議您將初始化腳本放在Amazon S3上,並限製對它的權限。
您可能需要根據運行時的Ubuntu版本修改包URL,您可以在發布說明.
腳本=" " # !/bin/bash設置-euxo pipefailRSTUDIO_BIN = " / usr / sbin / rstudio-server "If [[!-f "$RSTUDIO_BIN" && $DB_IS_DRIVER = "TRUE"]];然後apt-get更新Apt-get install -y gdebi-corecd / tmp你可以在https://rstudio.com/products/rstudio/download-server/debian-ubuntu/上找到新版本。wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2022.02.1-461-amd64.deb -O rstudio-server.debSudo gdebi -n rstudio-server.debRstudio-server restart || truefi"""dbutils.fs.mkdir(“磚/ rstudio”)dbutils.fs.把(“磚/ rstudio / rstudio-install.sh”,腳本,真正的)
在筆記本中運行代碼以安裝腳本
dbfs: /磚/ rstudio / rstudio-install.sh
在啟動集群之前,添加
dbfs: /磚/ rstudio / rstudio-install.sh
作為初始化腳本。看到集群範圍內的初始化腳本獲取詳細信息。啟動集群。
使用RStudio服務器開源版
顯示安裝了RStudio Server Open Source的集群的詳細信息,然後單擊應用程序標簽:
在應用程序選項卡,單擊設置RStudio按鈕。這將為您生成一個一次性密碼。單擊顯示鏈接顯示它並複製密碼。
單擊打開RStudio鏈接在新選項卡中打開UI。在登錄表單中輸入您的用戶名和密碼並登錄。
從RStudio UI中,您可以導入
SparkR
包裝和設置SparkR
會話在集群上啟動Spark作業。圖書館(SparkR)sparkR.session()查詢一個名為diamonds的表的前兩行# schema(數據庫)命名為“default”並顯示查詢結果。df<-SparkR::sql("SELECT * FROM default. "鑽石限量2")showDF(df)
您還可以附加sparklyr包並建立一個Spark連接。
圖書館(sparklyr)sc<-spark_connect(方法=“磚”)查詢一個名為“diamonds”的表並顯示前兩行。df<-spark_read_table(sc=sc,的名字=“鑽石”)打印(x=df,n=2)
開始使用RStudio Workbench(以前的RStudio Server Pro)
2022年2月,RStudio Server Pro更名為RStudio Workbench (關於名稱變更的常見問題).根據您的許可,RStudio Workbench可能包括RStudio Server Pro。
設置RStudio許可證服務器
要在Databricks上使用RStudio Workbench,您需要將您的Pro許可證轉換為浮點許可.如需協助,請聯絡幫助@rstudio.com.當您的許可證被轉換時,您必須設置許可證服務器對於RStudio Workbench。
使用實例設置許可證服務器。
在您的雲供應商網絡上啟動一個小實例;許可證服務器守護進程是非常輕量級的。
在您的實例上下載並安裝相應版本的RStudio License Server,並啟動該服務。有關詳細說明,請參見RStudio工作台管理指南.
確保許可證服務器端口對Databricks實例開放。
安裝RStudio工作台
要在Databricks集群上設置RStudio Workbench,必須創建一個初始化腳本來安裝RStudio Workbench二進製包,並將其配置為使用您的許可證服務器進行許可證租賃。看到審計日誌了解更多細節。
請注意
如果您計劃在已經包含RStudio Server Open Source Edition包的Databricks Runtime版本上安裝RStudio Workbench,您需要首先卸載該包才能成功安裝。
下麵是一個在DBFS上生成初始化腳本的筆記本單元格示例。該腳本還執行額外的身份驗證配置,以簡化與Databricks的集成。
重要的
所有用戶都有對DBFS的讀寫訪問,因此任何用戶都可以修改初始化腳本。如果這對您來說是一個潛在的問題,Databricks建議您將初始化腳本放在S3上,並限製對它的權限。
您可能需要根據運行時的Ubuntu版本修改包URL,您可以在發布說明.
腳本=" " # !/bin/bash設置-euxo pipefailif [[$DB_IS_DRIVER = "TRUE"]];然後Sudo apt-get更新Sudo DPKG——清除rstudio-server #,以防安裝了開源版本。Sudo apt-get install -y gdebi-core alien##安裝RStudio工作台cd / tmp你可以在https://rstudio.com/products/rstudio/download-commercial/debian-ubuntu/上找到新版本。wget https://download2.rstudio.org/server/bionic/amd64/rstudio-workbench-2022.02.1-461.pro1-amd64.deb -O rstudio-workbench.debSudo gdebi -n rstudio-workbench.deb##配置認證Sudo echo 'auth-proxy=1' >> /etc/rstudio/rserver.confSudo echo 'auth-proxy-user-header-rewrite=^(.*)$ $1' >> /etc/rstudio/rserver.confSudo echo 'auth-proxy-sign-in-url=/login.html' >> /etc/rstudio/rserver.conf Sudo echo 'admin-enabled=1' >> /etc/rstudio/rserver.confsudo echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /etc/rstudio/ session-profile . sh輸出說明#啟用浮動licenseSudo echo 'server-license-type=remote' >> /etc/rstudio/rserver.conf#會話配置Sudo echo 'session-rprofile-on-resume-default=1' >> /etc/rstudio/rsession.confSudo echo 'allow-terminal-websockets=0' >> /etc/rstudio/rsession.confSudo rstudio-server license-manager license-server Sudo rstudio-server restart || truefi"""dbutils.fs.mkdir(“磚/ rstudio”)dbutils.fs.把(“磚/ rstudio / rstudio-install.sh”,腳本,真正的)
取代
域> <
與您的Databricks URL和< license-server-url >
使用浮動許可證服務器的URL。在筆記本中運行代碼以安裝腳本
dbfs: /磚/ rstudio / rstudio-install.sh
在啟動集群之前添加
dbfs: /磚/ rstudio / rstudio-install.sh
作為初始化腳本。看到審計日誌獲取詳細信息。啟動集群。
使用RStudio Server Pro
顯示您安裝RStudio的集群的詳細信息,並單擊應用程序標簽:
在Apps選項卡中,單擊設置RStudio按鈕。
不需要設置一次性密碼。單擊打開RStudio UI鏈接,它將為您打開一個經過認證的RStudio Pro會話。
從RStudio UI中,您可以附加
SparkR
包裝和設置SparkR
會話在集群上啟動Spark作業。圖書館(SparkR)sparkR.session()查詢一個名為diamonds的表的前兩行# schema(數據庫)命名為“default”並顯示查詢結果。df<-SparkR::sql("SELECT * FROM default. "鑽石限量2")showDF(df)
您還可以附加sparklyr包並建立一個Spark連接。
圖書館(sparklyr)sc<-spark_connect(方法=“磚”)查詢一個名為“diamonds”的表並顯示前兩行。df<-spark_read_table(sc=sc,的名字=“鑽石”)打印(x=df,n=2)
RStudio Server的常見問題
RStudio服務器開源版和RStudio工作台有什麼區別?
RStudio Workbench支持開源版所沒有的大量企業特性。你可以在上麵看到特性比較RStudio的網站.
此外,RStudio服務器開源版是在GNU Affero通用公共許可證,而Pro版本為不能使用AGPL軟件的組織提供了商業許可證。
最後,RStudio Workbench提供了來自RStudio、PBC的專業和企業支持,而RStudio服務器開源版則沒有支持。
我可以在Databricks上使用我的RStudio Workbench / RStudio Server Pro許可證嗎?
是的,如果您已經擁有RStudio Server的Pro或Enterprise許可證,則可以在Databricks上使用該許可證。看到開始使用RStudio Workbench(以前的RStudio Server Pro)學習如何在Databricks上設置RStudio Workbench。
RStudio服務器在哪裏運行?我是否需要管理其他服務/服務器?
你可以從圖表中看到RStudio集成架構, RStudio Server守護進程運行在Databricks集群的驅動程序(主)節點上。使用RStudio服務器開源版,您不需要運行任何額外的服務器/服務。但是,對於RStudio Workbench,您必須管理一個運行RStudio License Server的單獨實例。
我可以在標準集群上使用RStudio Server嗎?
請注意
本文描述遺留集群UI。有關預覽UI的詳細信息,包括集群訪問模式的術語更改,請參見創建集群.有關新集群類型和遺留集群類型的比較,請參見集群UI更改和集群訪問模式.
是的,你可以。最初,你被要求使用高並發集群,但是這種限製已經不存在了。
我可以在具有自動終止功能的集群上使用RStudio服務器嗎?
不,當啟用自動終止時,您不能使用RStudio。自動終止可以清除RStudio會話中未保存的用戶腳本和數據。為了保護用戶不受這種意外數據丟失的影響,默認情況下在此類集群上禁用RStudio。
對於需要beplay体育app下载地址清理未使用集群資源的客戶,Databricks建議使用集群api來根據時間表清理RStudio集群。
我應該如何在RStudio上堅持我的工作?
我們強烈建議您使用RStudio中的版本控製係統來保存您的工作。RStudio對各種版本控製係統有很好的支持,並允許您檢入和管理您的項目。如果您不通過以下方法之一持久化您的代碼,那麼當管理員重新啟動或終止集群時,您可能會丟失您的工作。
方法之一是將文件(代碼或數據)保存在什麼是數據庫文件係統(DBFS)?.例如,如果您將文件保存在/ dbfs /
當您的集群終止或重新啟動時,這些文件不會被刪除。
另一種方法是通過將R筆記本導出為將其保存到本地文件係統Rmarkdown
,然後將該文件導入RStudio實例。這個博客使用RMarkdown共享R筆記本更詳細地描述這些步驟。
另一種方法是將Amazon Elastic File System (Amazon EFS)卷掛載到您的集群,這樣當集群關閉時,您不會丟失您的工作。當集群重新啟動時,Databricks將重新掛載Amazon EFS卷,您可以繼續停止的地方。要將現有的Amazon EFS卷掛載到集群,請調用創建集群(帖子/ api / 2.0 /集群/創建
)或編輯集群(帖子/ api / 2.0 /集群/編輯
)操作,在操作的中指定Amazon EFS卷的裝入信息cluster_mount_infos
數組中。
確保您創建或使用的集群沒有啟用Unity Catalog、自動終止或自動伸縮功能。還要確保集群對掛載的卷具有寫訪問權限,例如通過運行該命令修改文件權限+ w< /道路/ /卷>
在集群上。您可以通過集群的網絡終端,或在新集群上使用init腳本您在前麵的操作中指定的init_scripts
數組中。
如果您沒有現有的Amazon EFS卷,您可以創建一個。首先聯係Databricks的管理員,獲取Databricks工作空間的VPC ID、公網子網ID和安全組ID。然後使用該信息以及AWS管理控製台來使用Amazon EFS控製台創建具有自定義設置的文件係統.在此過程的最後一步中,單擊附加複製前麵指定的DNS名稱和掛載選項cluster_mount_infos
數組中。
我如何開始SparkR
會話嗎?
SparkR
包含在Databricks運行時中,但是你必須將它加載到RStudio中。在RStudio中運行以下代碼來初始化aSparkR
會話。
圖書館(SparkR)sparkR.session()
對象導入時出現錯誤SparkR
包,運行.libPaths ()
驗證一下/home/ubuntu/databricks/spark/R/lib
包含在結果中。
如果沒有,請檢查/usr/lib/R/etc/Rprofile.site
.列表/home/ubuntu/databricks/spark/R/lib/SparkR
對駕駛員進行驗證SparkR
安裝完成。
我如何開始sparklyr
會話嗎?
的sparklyr
軟件包必須安裝在集群上。可通過以下方式安裝sparklyr
包:
作為Databricks庫
install.packages ()
命令RStudio包管理UI
圖書館(sparklyr)sc<-spark_connect(方法=”磚”)
我不能使用終端或git在RStudio在Databricks。我該如何解決這個問題?
確保你已經禁用了websockets。在RStudio Server開源版中,您可以從UI中完成此操作。
在RStudio Server Pro中,您可以添加allow-terminal-websockets = 0
來/etc/rstudio/rsession.conf
禁用所有用戶的websockets。
我沒有在集群詳細信息下看到Apps選項卡。
並不是所有客戶都可以使用該特性。beplay体育app下载地址你一定在優質計劃或以上.
我可以從RStudio運行在Databricks上啟動閃亮應用嗎?
是的,您可以進行開發和查看在RStudio Server上的Databricks閃亮的應用程序.