1

我通过 Dask-gateway 在集群环境中使用 Dask。我在 Jupyter Notebook 中创建了计算图。在我的延迟函数中,它调用了在几个单独的 .py 文件中定义的多个函数。目前,我遇到了工人说找不到这些模块的错误。我猜这是因为工人无法访问那些 .py 文件。我想知道如何将这些 .py 文件“发送”给工人?

谢谢。

4

1 回答 1

1

是的。所有类/函数/模块都必须在 notebook 中定义,或者必须使用与客户端调用的相同语法在 worker 上导入。

您可以在笔记本中定义您的方法,使用 pip 或其他一些部署机制部署模块,或者使用client.upload_file.

来自 dask 文档:

upload_file(filename, **kwargs)

将本地包上传到工作人员

这会将本地文件发送到所有工作节点。该文件被放置在 Python 系统路径上的一个临时目录中,因此任何 .py、.egg 或 .zip 文件都可以导入。

client.upload_file('mylibrary.egg')  
from mylibrary import myfunc  
L = client.map(myfunc, seq)
于 2021-12-08T04:35:29.113 回答