图书馆除了依赖失败

学习为什么notebook-scoped库触发一个Apache火花依赖异常;返回一个不能满足误差要求。

写的jordan.hicks

去年发表在:2022年5月11日

问题

你的Python函数定义在一个定制的鸡蛋或轮文件,也依赖另一个满意的客户包安装在集群。

当你调用这个函数,它返回一个错误,说不能满足要求。

org.apache.spark。SparkException:进程列表(/ local_disk0 / pythonVirtualEnvDirs / virtualenv d82b31df - 1 - da3 - 4 ee9 - 864 d - 8 d1fce09c09b / bin / python / local_disk0 / pythonVirtualEnvDirs / virtualenv d82b31df - 1 - da3 - 4 ee9 - 864 d - 8 d1fce09c09b / bin /皮普,安装、分形= = 0.1.0——disable-pip-version-check)退出代码1。无法找到一个版本满足需求分= = 0.1.0(版本:0.1.1、0.1.2 0.2.1,0.2.2,0.2.3,0.2.4,0.2.5,0.2.6虽然只是0.2.7,0.2.8,0.2.9,0.3.0)

作为一个例子,假设您已经安装了两个轮子和轮子B,集群通过UI或通过notebook-scoped库。假设轮有一个依赖轮B。

  • dbutils.library.install (/ path_to_wheel / A.whl)
  • dbutils.library.install (/ path_to_wheel / B.whl)

当你试图打电话使用这些库之一,你会得到一个要求不能满足误差。

导致

即使要求遭到了安装所需的依赖项,通过集群UI或通过notebook-scoped库安装、砖不能保证特定库的顺序安装在集群。如果图书馆被引用,它没有被分配给执行器节点,将后备PyPI并在本地使用它来满足需求。

解决方案

您应该使用一个鸡蛋或轮文件,其中包含所有需要的代码和依赖关系。这将确保你的代码有正确的库在运行时加载和可用。

这篇文章有用吗?