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