簡體   English   中英

在 databricks 集群上安裝 R 空間包所需的 c 庫

[英]Installing c libraries needed for R spatial packages on databricks clusters

R 中的空間包通常依賴於 C 庫進行數值計算。 如果 R 引擎無法使用默認權限安裝這些庫,則在安裝依賴於這些庫的 R 包時會出現問題。 數據塊集群似乎對 R 構成了這樣的障礙。 我想有兩種方法可以解決這個問題,1)使用相關腳本創建一個 docker 容器來安裝軟件包,或者 2)通過 init 腳本安裝它們。 我認為后一種方法會更容易,但我遇到了一些問題。 集群無法啟動,因為我的 init 腳本無法執行。 見下文-我也嘗試過sudo

set -euxo pipefail

apt install libgeos-dev
apt install libudunits2-dev
apt install libgdal-dev

相關地,這些應該只安裝在驅動節點上嗎? 我看不出他們需要在工作節點上的原因。 上面的代碼將它安裝在我認為的工人和司機身上。 要安裝在驅動程序上,我想它會是:

if [[ $DB_IS_DRIVER = "TRUE" ]]; then
apt install libgeos-dev
apt install libudunits2-dev
apt install libgdal-dev

我遇到了類似的情況,需要安裝一些 R package 所需的庫才能在 unix 環境中工作。 在 Databricks 上執行一些類似於下面的命令以在 DBFS 中創建 initscript,希望它對您的問題有所幫助。
此外,它們應該安裝在所有節點上,而不僅僅是驅動程序節點上,如果您希望使用分布式計算,R package 也可以在工作節點上工作。

dbutils.fs.mkdirs("dbfs:/databricks/initscripts/") 

dbutils.fs.put("/databricks/initscripts/installpackagehelpers.sh","""
#!/bin/bash
echo "Installing libgmp"
sudo apt-get -q -y --fix-missing install libgmp-dev
echo "Installed libgmp" 
echo "Installing libmpfr"
sudo apt-get -q -y --fix-missing install libmpfr-dev
echo "Installed libmpfr"
""", True)

最后,在創建集群時提供了來自 DBFS 的 initscript 位置。 /databricks/initscripts/installpackagehelpers.sh按照上面的例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM