問題
您正在嚐試安裝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以及所需的依賴項。
- 如果基本目錄不存在,則創建用於存儲初始化腳本的基本目錄。在這裏,使用dbfs: /磚/ <目錄>舉個例子。
% sh dbutils.fs.mkdirs(“dbfs: /磚/ <目錄> /”)
- 創建腳本並將其保存到一個文件中。
%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) - 檢查腳本是否存在。
% python顯示器(dbutils.fs.ls(“dbfs: /磚/ <目錄> / cartopy.sh”))
- 在集群配置頁麵,單擊高級選項切換。
- 在該頁的底部,單擊Init腳本選項卡。
- 在目的地下拉菜單,選擇“DBFS”,提供腳本的文件路徑,單擊添加.
- 重新啟動集群。