我正在使用如何在 Pandas 中使用 apply 并行化许多(模糊)字符串比较dask
?
基本上我做了一些计算(不向磁盘写入任何内容)调用Pandas
和Fuzzywuzzy
(如果有帮助的话,显然可能不会释放 GIL)并且我运行类似:
dmaster = dd.from_pandas(master, npartitions=4)
dmaster = dmaster.assign(my_value=dmaster.original.apply(lambda x: helper(x, slave), name='my_value'))
dmaster.compute(get=dask.multiprocessing.get)
但是,代码的一个变体现在已经运行了 10 个小时,还没有结束。我在 Windows 任务管理器中注意到
RAM utilization
相当低,对应于我的数据大小CPU usage
每 2/3 秒左右从 0% 反弹到最多 5%- 我
20 Python processes
的大小约为 100MB,一个 Python 进程可能包含 30GB 大小的数据(我有一台 128GB 的机器,8 核 CPU)
问题是:这种行为是预期的吗?我在这里设置一些dask
选项显然是非常错误的吗?
当然,我知道具体情况取决于我到底在做什么,但也许上面的模式已经可以说明某些事情是非常错误的?
非常感谢!!