3

我无法在 Databricks 上安装 rgdal 和 rgeos,有什么建议吗?

configure: error: gdal-config not found or not executable.
ERROR: configuration failed for package ‘rgdal’
* removing ‘/databricks/spark/R/lib/rgdal’

configure: error: geos-config not found or not executable.
ERROR: configuration failed for package ‘rgeos’
* removing ‘/databricks/spark/R/lib/rgeos’
4

1 回答 1

2

这是在 Azure Databricks 上的 R 上安装 rgdal 和 rgeos 的一种方法。每次启动集群时都需要执行第 1 步和第 2 步。第 1 步可以自动化(见下文),但第 2 步需要在单独的脚本中手动执行或添加到 R 脚本的顶部。

步骤1

您需要首先在集群中的 linux 机器上安装 gdal 和 geos。这可以使用 databricks 笔记本中的 bash 脚本来完成。这%s是允许该单元运行 shell 脚本的神奇命令。

%sh
#!/bin/bash

#Start by updating everything
sudo apt-get update

##############
#### rgdal

#This installs gdal on the linux machine but not the R library (done in R script)
#See https://databricks.com/notebooks/rasterframes-notebook.html
sudo apt-get install -y gdal-bin libgdal-dev

#To be able to install the R library, you also need libproj-dev 
#See https://philmikejones.me/tutorials/2014-07-14-installing-rgdal-in-r-on-linux/
sudo apt-get install -y libproj-dev 

##############
#### rgeos

#This installs geos on the linux machine but not the R library (done in R script)
#See https://philmikejones.me/tutorials/2014-07-14-installing-rgdal-in-r-on-linux/
sudo apt install libgeos++dev

但是,每次都必须手动运行很烦人,因此您可以创建一个每次在集群启动时运行的初始化脚本。因此,在 databricks python notebook 中,将此代码复制到一个单元格中。中的脚本dbfs:/databricks/init/<name_of_cluster>将在启动时为具有该名称的集群运行。

#This file creates a bash script called install_packages.sh. The cluster run this file on each startup.
# The bash script will be anything inside the variable script 

clusterName = "RStudioCluster"
script = """#!/bin/bash

#Start by updating everything
sudo apt-get update

##############
#### rgdal

#This installs gdal on the linux machine but not the R library (done in R script)
#See https://databricks.com/notebooks/rasterframes-notebook.html
sudo apt-get install -y gdal-bin libgdal-dev

#To be able to install the R library, you also need libproj-dev 
#See https://philmikejones.me/tutorials/2014-07-14-installing-rgdal-in-r-on-linux/
sudo apt-get install -y libproj-dev 

##############
#### rgeos

#This installs geos on the linux machine but not the R library (done in R script)
#See https://philmikejones.me/tutorials/2014-07-14-installing-rgdal-in-r-on-linux/
sudo apt install libgeos++dev

"""
dbutils.fs.put("dbfs:/databricks/init/%s/install_packages.sh" % clusterName, script, True)

第2步

到目前为止,您刚刚在集群中的 linux 机器上安装了 gdal 和 geos。在此步骤中,您将安装 R 包rgdal。但是,最新版本与可用rgdal的最新版本不兼容。有关更多详细信息和解决此问题的替代方法,请参见此处,但如果您对旧版本没问题,那么最简单的解决方法是安装. 您可以在 databricks R笔记本或 Rstudio databricks 应用程序中执行此操作,如下所示:gdalapt-getrgdalrgdal

require(devtools)
install_version("rgdal", version="1.2-20")
install.packages("rgeos")

设置完成

然后你可以像往常一样导入这些库:

library(rgdal)
library(rgeos)
于 2020-08-24T19:29:18.650 回答