在 Azure Databricks 上安装 gdal 时出错

Error while installing gdal on Azure Databricks

正在处理光栅文件并需要 gdal 包。尝试在 Azure Databricks 上安装会抛出以下错误。关于如何在 Databricks

上安装它的任何线索

使用缓存的 GDAL-3.0 收集 gdal。4.tar.gz (577 kB) 错误:命令出错,退出状态为 1:命令:/databricks/python3/bin/python3.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"' "'/tmp/pip-install-i3yomji8/gdal/setup.py'"'"'; file='"'"'/tmp/pip-install-i3yomji8/gdal/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', 打开)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(编译( code, file, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-i3yomji8/gdal/pip-egg-info cwd: /tmp/pip-install-i3yomji8/gdal/ 完整输出(72行): 运行 egg_info 创建 /tmp/pip-install-i3yomji8/gdal/pip-egg-info/GDAL.egg-info 写入 /tmp/pip-install-i3yomji8/gdal/pip-egg-info/GDAL。egg-info/PKG-INFO 将 dependency_links 写入 /tmp/pip-install-i3yomji8/gdal/pip-egg-info /GDAL.egg-info/dependency_links.txt 将顶级名称写入 /tmp/pip-install-i3yomji8/gdal/pip-egg-info/GDAL.egg-info/top_level.txt 写入清单文件 '/tmp/pip-install-i3yomji8/gdal/pip-egg-info/GDAL.egg-info/SOURCES.txt ' 追溯(最近调用最后):文件“/tmp/pip-install-i3yomji8/gdal/setup.py”,第 151 行,在 fetch_config p = subprocess.Popen([command, args], stdout=subprocess.PIPE ) 文件“/usr/lib/python3.7/subprocess.py”,第 775 行,在初始化 restore_signals,start_new_session) 文件“/usr/lib/python3.7/subprocess.py ",第 1522 行,在 _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: '. ./../apps/gdal-config': '../../apps/gdal-config'

在 Azure Databricks 中安装包的方法有多种:

方法一: Using libraries

要使第三方或本地构建的代码可用于集群上的笔记本和作业 运行,您可以安装一个库。可以用Python、Java、Scala、R写库,可以上传Java、Scala、Python库,指向PyPI、Maven、和 CRAN 存储库。

安装第三方库的步骤:

步骤 1: 创建 Databricks 集群。

Step2: Select集群创建。

步骤 3: Select 库 => 安装新的 => Select 库源 = "Maven" => 坐标 => 搜索包 = > Select Maven Central => 搜索所需的包。示例:(GDAL) => Select 所需版本 (3.0.0) => 安装

方法 2: 使用 Cluster-scoped init scripts

集群范围的初始化脚本是在集群配置中定义的初始化脚本。集群范围的初始化脚本适用于您创建的集群和为 运行 作业创建的集群。由于脚本是集群配置的一部分,集群访问控制让您可以控制谁可以更改脚本。

Step1: 添加 DBFS 路径 dbfs:/databricks/scripts/gdal_install.sh 到集群初始化脚本

# --- Run 1x to setup the init script. ---
# Restart cluster after running.
dbutils.fs.put("/databricks/scripts/gdal_install.sh","""
#!/bin/bash
sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install -y cmake gdal-bin libgdal-dev python3-gdal""",
True)

Step2: 第一次 运行ning step1 后重启集群。

详情请参考“RasterFrames Notebook”。

希望这对您有所帮助。如果您有任何疑问,请告诉我们。