我通过Dask网关在集群环境中使用Dask。我在Jupyter笔记本上创建了计算图。在我的延迟函数中,它调用了在几个单独的.py文件中定义的多个函数。目前,我在worker上遇到错误,说找不到这些模块。我想这是因为工作人员无法访问那些.py文件。我想知道如何将这些.py文件"发送"给员工?
谢谢。
是的。所有类/函数/模块都必须在笔记本中定义,或者必须使用与客户端调用的语法相同的语法在工作者上导入。
您可以在笔记本中定义方法,使用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)