笔记本范围的R库

笔记本范围的R库允许您创建和修改特定于笔记本会话的自定义R环境。当安装R笔记本范围的库时,只有当前笔记本和与该笔记本关联的任何作业可以访问该库。附加到同一集群的其他笔记本不受影响。

笔记本范围的库不能跨会话持久存在。必须在每次会话开始时重新安装笔记本范围的库,或者在从集群中分离笔记本时重新安装。

工作人员可以自动使用笔记本范围的图书馆SparkR udf

若要为连接到集群的所有笔记本安装库,请使用工作空间cluster-installed库。

需求

在Databricks Runtime 9.0及以上版本中默认启用笔记本范围的R库。

在R中安装笔记本范围的库

您可以使用任何熟悉的方法在R中安装包,例如install.packages (),Devtools api,或Bioconductor

从Databricks Runtime 9.0开始,工作节点和驱动节点都可以访问R包。

在R中管理笔记本范围的库

安装包

install.packages“凯撒”回购“https://cran.microsoft.com/snapshot/2021-07-16/”

Databricks建议使用CRAN快照作为存储库来保证可重复的结果

devtools::install_github“klutometis / roxygen”

从笔记本环境中删除R包

要从笔记本中删除笔记本范围的库,请使用remove.packages ()命令。

remove.packages“凯撒”

使用Spark udf的笔记本范围的R库

笔记本范围的R库和SparkR

在SparkR worker上可以使用笔记本范围的库;只需导入一个库来使用它。例如,您可以运行以下命令使用SparkR UDF生成凯撒加密消息:

install.packages“凯撒”回购“https://cran.microsoft.com/snapshot/2021-07-16/”图书馆SparkRsparkR.session()你好<-函数x图书馆凯撒凯撒“hello world”spark.lapplyc12),你好

笔记本范围的R库和sparklyr

默认情况下,sparklyr: spark_apply (),参数设置为真正的.这将复制当前文件中的库libPaths到工人,允许您导入并在工人上使用它们。例如,您可以运行以下命令以生成凯撒加密的消息sparklyr: spark_apply ()

install.packages“凯撒”回购“https://cran.microsoft.com/snapshot/2021-07-16/”图书馆sparklyrsc<-spark_connect方法“砖”apply_caes<-函数x图书馆凯撒凯撒“hello world”sdf_lensc5% > %spark_applyapply_caes

如果不希望库在worker上可用,请设置

库隔离和托管RStudio

RStudio为每个用户创建一个单独的库路径;因此用户之间是相互隔离的。但是,库路径在工作线程上不可用。如果你想在从RStudio启动的作业中使用SparkR worker内部的包,你需要使用集群范围的库来安装它。

或者,如果您使用sparklyr udf,安装在RStudio中的包在使用时是可用的spark_apply(…真正的)

常见问题(FAQ)

如何在所有R笔记本电脑的驱动程序上安装一个包?

显式地将安装目录设置为/砖/火花/ R / lib.例如,用install.packages ()、运行install.packages(“pckg”,自由= " /砖/火花/ R / lib”).安装在/砖/火花/ R / lib在集群上的所有笔记本电脑上共享,但是SparkR工作人员不能访问它们。如果您希望在笔记本和工作人员之间共享库,请使用集群级库

笔记本范围的库是否缓存?

集群上没有为笔记本范围的库实现缓存。如果您在笔记本电脑上安装了一个包,而另一个用户在同一集群上的另一个笔记本电脑上安装了同一个包,则会下载、编译并重新安装该包。