Вот один из способов установить rgdal и rgeos на R в Azure Databricks. Шаги 1 и 2 необходимо выполнять каждый раз при запуске кластера. Шаг 1 можно автоматизировать (см. ниже), но шаг 2 необходимо выполнить вручную в отдельном сценарии или добавить в начало вашего сценария R.
Шаг 1
Сначала вам нужно установить gdal и geos на Linux-машины в вашем кластере. Это можно сделать с помощью сценария bash в записной книжке с блоками данных. %s
— это волшебная команда, которая позволяет этой ячейке запускать сценарий оболочки.
%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
Однако это раздражает, когда приходится каждый раз запускать вручную, поэтому вы можете создать сценарий инициализации, который запускается каждый раз при запуске кластера. Поэтому в блокноте python скопируйте этот код в ячейку. Скрипты в 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
Пока что вы только что установили gdal и geos на Linux-машины в кластере. На этом шаге вы установите пакет R rgdal
. Однако последние версии rgdal
несовместимы с самой последней версией gdal
, доступной с apt-get
. Подробнее см. здесь. альтернативные способы решить эту проблему, но если вас устраивает более старая версия rgdal
, то самый простой обходной путь — установить версию 1.2-20 rgdal
. Это можно сделать в блокноте R из блоков данных или в приложении для блоков данных Rstudio следующим образом:
require(devtools)
install_version("rgdal", version="1.2-20")
install.packages("rgeos")
Настройка выполнена
Затем вы можете импортировать эти библиотеки, как обычно:
library(rgdal)
library(rgeos)
person
TheIceBear
schedule
24.08.2020