在集群上安裝Cartopy時出錯

如果未安裝libgeos和libproj,則Cartopy安裝失敗。

寫的prem.jayaraj

最後發布時間:2022年5月11日

問題

您正在嚐試安裝Cartopy在集群上,你會收到一個ManagedLibraryInstallFailed錯誤消息。

java.lang.RuntimeException: ManagedLibraryInstallFailed: org.apache. sparkexception: Process List(/databricks/python/bin/pip, install, cartopy==0.17.0,——disable-pip-version-check) exited with code 1。ERROR: Command ERROR out with exit status 1: Command: /databricks/python3/bin/python3.7 /databricks/python3/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmpjoliwaky cwd: /tmp/pip-install-t324easa/cartopy Complete output(3行):setup.py:171: UserWarning: Unable to確定GEOS版本。確保安裝了3.3.3或更高版本,否則可能會安裝失敗。'.'.join(str(v) for v in GEOS_MIN_VERSION),))必須安裝Proj 4.9.0。---------------------------------------- ERROR: Command ERROR out with exit status 1: /databricks/python3/bin/python3.7 /databricks/python3/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmpjoliwaky查看完整的命令輸出日誌。圖書館:PythonPyPiPkgId (cartopy,一些(0.17.0),列表()),isSharedLibrary = false

導致

Cartopy依賴於libgeos3.3.3及以上及libproj4.9.0.如果libgeos而且libproj沒有安裝,Cartopy安裝失敗。

解決方案

配置一個集群範圍的初始化腳本(AWS|Azure|GCP)自動安裝Cartopy以及所需的依賴項。

  1. 如果基本目錄不存在,則創建用於存儲初始化腳本的基本目錄。在這裏,使用dbfs: /磚/ <目錄>舉個例子。
    % sh dbutils.fs.mkdirs(“dbfs: /磚/ <目錄> /”)
  2. 創建腳本並將其保存到一個文件中。
    %sh dbutils.fs.put("dbfs:/databricks//cartopy.sh","" #!/bin/bash sudo apt-get install libgeos++-dev -y sudo apt-get install libproject -dev -y /databricks/python/bin/pip install Cartopy """,True)
  3. 檢查腳本是否存在。
    % python顯示器(dbutils.fs.ls(“dbfs: /磚/ <目錄> / cartopy.sh”))
  4. 在集群配置頁麵,單擊高級選項切換。
  5. 在該頁的底部,單擊Init腳本選項卡。
    DBFS初始化腳本設置界麵的圖像。
  6. 目的地下拉菜單,選擇“DBFS”,提供腳本的文件路徑,單擊添加
  7. 重新啟動集群。