微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Modin 与 dask 冲突

如何解决Modin 与 dask 冲突

我正在尝试 modin,但一直出现错误

import modin.pandas as md
import pandas as pd

PATH = 'file.csv'

%%time
df = pd.read_csv(PATH)

%%time
mdf = md.read_csv(PATH)

错误

用户警告:dask 执行环境尚未初始化。正在初始化... 要消除此警告,请在执行数据帧操作之前运行以下 python 代码

from distributed import Client

client = Client()

从未检索到任务异常 未来: 异常=ImportError("cannot import name 'Popen' from part initialized module 'multiprocessing.popen_spawn_win32' (很可能是由于循环导入) (C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\multiprocessing\ popen_spawn_win32.py)")> 回溯(最近一次调用最后一次): 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\asyncio\tasks.py”,第 690 行,在 _wrap_awaitable return (yield from awaitable.await()) 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\site-packages\distributed\core.py”,第 290 行,在 _ 等待 self.start() 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\site-packages\distributed\nanny.py”,第 295 行,在开始 响应 = 等待 self.instantiate() 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\site-packages\distributed\nanny.py”,第 378 行,实例化 结果 = 等待 self.process.start() 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\site-packages\distributed\nanny.py”,第 575 行,在开始 等待 self.process.start() 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\site-packages\distributed\process.py”,第 34 行,在 _call_and_set_future res = func(*args,**kwargs) 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\site-packages\distributed\process.py”,第 202 行,在 _start process.start() 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\multiprocessing\process.py”,第 121 行,在开始 self._popen = self._Popen(self) 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\multiprocessing\context.py”,第 224 行,在 _Popen 返回_default_context.get_context().Process._Popen(process_obj) 文件“C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\multiprocessing\context.py”,第 326 行,在 _Popen 从 .popen_spawn_win32 导入 Popen 导入错误:无法从部分初始化的模块“multiprocessing.popen_spawn_win32”中导入名称“Popen”(很可能是由于循环导入)(C:\Users\Oleg\AppData\Local\Programs\Python\python39\lib\multiprocessing\popen_spawn_win32。 py) '''

如果有帮助的话,我有一个 popen 版本 0.1.20。 SO 上有人建议尝试错误消息中的操作 - 导入 dask.distributed 并启动客户端,但没有帮助。

非常感谢任何帮助。

ps。几周前我想尝试 modin,但安装并不简单,有很多错误,主要是 ray 和 dask 导入。我设法使 dask 以某种方式工作,而不是 modin。并开始学习它的api。现在我决定再试一次,因为我认为 dask 工作正常,但不,仍然有一些导入错误,什么都没有。

解决方法

似乎 modin 正在自动创建一个 dask 本地进程集群。不幸的是,每个人都在导入您的脚本,以便他们能够理解定义的变量 - 然后每个人也在尝试启动一个新的 dask 本地集群。

您应该尝试将您的代码放在一个函数中,并从受保护的块中调用该函数

if __name__ == "__main__":

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。