【问题标题】:Error while installing gdal on Azure Databricks在 Azure Databricks 上安装 gdal 时出错
【发布时间】:2020-05-25 06:38:20
【问题描述】:

处理光栅文件,需要gdal包。尝试在 Azure Databricks 上安装会引发以下错误。任何线索如何在 Databricks 上安装它

使用缓存的 GDAL-3.0.4.tar.gz (577 kB) 收集 gdal 错误:命令出错,退出状态为 1:命令:/databricks/python3/bin/python3.7 -c 'import sys, setuptools,标记化; sys.argv[0] = '"'"'/tmp/pip-install-i3yomji8/gdal/setup.py'"'"'; file='"'"'/tmp/pip-install-i3yomji8/gdal/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(文件) ;code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(代码,文件,'"'"'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 writing /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' Traceback(最近一次调用最后):文件“/tmp/pip-install-i3yomji8/gdal/setup.py”,第 151 行,在 fetch_config p = subprocess.Popen([command, args], stdout=subprocess .PIPE)文件“/usr/lib/python3.7/subproce ss.py”,第 775 行,在 init restore_signals,start_new_session 文件“/usr/lib/python3.7/subprocess.py”,第 1522 行,在 _execute_child 中引发 child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2]没有这样的文件或目录:'../../apps/gdal-config': '../../apps/gdal-config'

【问题讨论】:

    标签: azure gdal azure-databricks geotiff rasterio


    【解决方案1】:

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

    方法一:Using libraries

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

    安装第三方库的步骤:

    第 1 步: 创建 Databricks 集群。

    第二步:选择创建的集群。

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

    方法2:使用Cluster-scoped init scripts

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

    第一步:将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:第一次运行step1后重启集群。

    更多详情请参考“RasterFrames Notebook”。

    希望这会有所帮助。如果您有任何进一步的疑问,请告诉我们。

    【讨论】:

    • 从数据块笔记本中运行!pip install module-name 怎么样?当dbutils.library.installPyPi(module-name) 不工作时,这工作在笔记本中。 !pip 将模块安装到哪里?它们是笔记本范围、库范围还是集群范围?
    猜你喜欢
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2022-08-14
    相关资源
    最近更新 更多