gpt4 book ai didi

dask - 嵌套模块的 client.upload_file()

转载 作者:行者123 更新时间:2023-12-05 07:17:49 26 4
gpt4 key购买 nike

我有一个结构如下的项目;

- topmodule/
- childmodule1/
- my_func1.py
- childmodule2/
- my_func2.py
- common.py
- __init__.py

我在 Dask 集群的边缘节点上使用我的 Jupyter notebook,我正在执行以下操作

from topmodule.childmodule1.my_func1 import MyFuncClass1
from topmodule.childmodule2.my_func2 import MyFuncClass2

然后我正在创建一个分布式客户端并按如下方式发送工作;

client = Client(YarnCluster())
client.submit(MyFuncClass1.execute)

这个错误,因为worker没有topmodule的文件。

"/mnt1/yarn/usercache/hadoop/appcache/application_1572459480364_0007/container_1572459480364_0007_01_000003/environment/lib/python3.7/site-packages/distributed/protocol/pickle.py", line 59, in loads return pickle.loads(x) ModuleNotFoundError: No module named 'topmodule'

所以我尝试做的是 - 我尝试上传“topmodule”下的每个文件。直接在“topmodule”下的文件似乎被上传了,但嵌套的文件没有。以下是我要说的;

代码:

from pathlib import Path

for filename in Path('topmodule').rglob('*.py'):
print(filename)
client.upload_file(filename)

控制台输出:

topmodule/common.py # processes fine 
topmodule/__init__.py # processes fine
topmodule/childmodule1/my_func1.py # throws error

回溯:


---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-13-dbf487d43120> in <module>
3 for filename in Path('nodes').rglob('*.py'):
4 print(filename)
----> 5 client.upload_file(filename)

~/miniconda/lib/python3.7/site-packages/distributed/client.py in upload_file(self, filename, **kwargs)
2929 )
2930 if isinstance(result, Exception):
-> 2931 raise result
2932 else:
2933 return result

ModuleNotFoundError: No module named 'topmodule'

我的问题是 - 如何将整个模块及其文件上传给工作人员?我们的模块很大,所以我想避免仅仅为了这个问题而重构它,除非我们构建模块的方式存在根本性缺陷。

或者 - 是否有更好的方法让所有 dask worker 理解可能来自 git 存储库的模块?

最佳答案

当您对每个文件单独调用 upload_file 时,您会丢失模块的目录结构。

如果您想上传更全面的模块,您可以将您的模块打包成 zip 或 egg 文件并上传。

https://docs.dask.org/en/latest/futures.html#distributed.Client.upload_file

关于dask - 嵌套模块的 client.upload_file(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com