将远程 R 包安装到 Databricks 集群而不是笔记本
Installing Remote R Package to Databricks Cluster Rather than Notebook
我正在尝试将 prophet
包安装到 Databricks。我想将它直接安装到我的集群而不是我的笔记本上。下面是将其安装到笔记本的以下代码:
Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
remotes::install_github("jeroen/V8")
devtools::install_version("rstantools", version = "2.0.0")
install.packages('prophet')
不过,我想直接下载到我的集群。我将如何添加这段代码以将 prophet 包安装到我的 Databricks 集群?
以下是我在尝试将软件包安装到集群时看到的选项:
尝试直接下载到集群:
命令 1
%python
dbutils.fs.mkdirs("dbfs:/databricks/scripts/")
命令 2
%python
dbutils.fs.put("/databricks/scripts/prophet_install_script.R","""
Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
remotes::install_github(\"jeroen/V8\")
devtools::install_version(\"rstantools\", version = \"2.0.0\")
install.packages('prophet')
""", True)
命令 3
%python
dbutils.fs.put("/databricks/scripts/stock_cluster_init_script_v1.sh","""
#!/bin/bash
R CMD BATCH /dbfs/databricks/scripts/prophet_install_script.R
""", True)
然后我去了我的新集群,运行它用这个初始化脚本:
然后它向我提供了以下错误:
{
"reason": {
"code": "INIT_SCRIPT_FAILURE",
"type": "CLIENT_ERROR",
"parameters": {
"instance_id": "i-0c71b23287fb81530",
"databricks_error_message": "Cluster scoped init script dbfs:/databricks/scripts/stock_cluster_init_script_v1.sh failed: Script exit status is non-zero"
}
}
}
如果您使用的不是社区版,则可以使用 cluster init script 执行此安装(您也可以在那里安装其他库)。
只需将 R 命令放入 DBFS 上的文件中(请参阅链接文档以了解如何为此使用 dbutils.fs.put
- 您还需要显式设置 CRAN 镜像):
local({r <- getOption("repos")
r["CRAN"] <- "http://cran.r-project.org"
options(repos=r)
})
Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
remotes::install_github(\"jeroen/V8\")
devtools::install_version(\"rstantools\", version = \"2.0.0\")
install.packages('prophet')
然后创建包含以下内容的初始化脚本:
#!/bin/bash
Rscript --verbose /dbfs/<path-to-file>
请注意<path-to-file>
应该没有dbfs:
我正在尝试将 prophet
包安装到 Databricks。我想将它直接安装到我的集群而不是我的笔记本上。下面是将其安装到笔记本的以下代码:
Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
remotes::install_github("jeroen/V8")
devtools::install_version("rstantools", version = "2.0.0")
install.packages('prophet')
不过,我想直接下载到我的集群。我将如何添加这段代码以将 prophet 包安装到我的 Databricks 集群?
以下是我在尝试将软件包安装到集群时看到的选项:
尝试直接下载到集群:
命令 1
%python
dbutils.fs.mkdirs("dbfs:/databricks/scripts/")
命令 2
%python
dbutils.fs.put("/databricks/scripts/prophet_install_script.R","""
Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
remotes::install_github(\"jeroen/V8\")
devtools::install_version(\"rstantools\", version = \"2.0.0\")
install.packages('prophet')
""", True)
命令 3
%python
dbutils.fs.put("/databricks/scripts/stock_cluster_init_script_v1.sh","""
#!/bin/bash
R CMD BATCH /dbfs/databricks/scripts/prophet_install_script.R
""", True)
然后我去了我的新集群,运行它用这个初始化脚本:
然后它向我提供了以下错误:
{
"reason": {
"code": "INIT_SCRIPT_FAILURE",
"type": "CLIENT_ERROR",
"parameters": {
"instance_id": "i-0c71b23287fb81530",
"databricks_error_message": "Cluster scoped init script dbfs:/databricks/scripts/stock_cluster_init_script_v1.sh failed: Script exit status is non-zero"
}
}
}
如果您使用的不是社区版,则可以使用 cluster init script 执行此安装(您也可以在那里安装其他库)。
只需将 R 命令放入 DBFS 上的文件中(请参阅链接文档以了解如何为此使用 dbutils.fs.put
- 您还需要显式设置 CRAN 镜像):
local({r <- getOption("repos")
r["CRAN"] <- "http://cran.r-project.org"
options(repos=r)
})
Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
remotes::install_github(\"jeroen/V8\")
devtools::install_version(\"rstantools\", version = \"2.0.0\")
install.packages('prophet')
然后创建包含以下内容的初始化脚本:
#!/bin/bash
Rscript --verbose /dbfs/<path-to-file>
请注意<path-to-file>
应该没有dbfs: