Modin 是一个 Python 第三方库,用于加速 Pandas 的 API 执行速度。原始的 Pandas 是单线程执行的,而 Modin 则重新打包了 Pandas 里面的 API,使其同时在多个内核中运行,提高硬件性能的利用率。
使用方法很简单,安装 Modin 后,将导入 pandas 的语句由 import pandas as pd 改为 from modin import pandas as pd 即可。这时候使用的便是由 Modin 包装后的 API。但是它并没有覆盖全部的 API,遇到库中不包含的 API,它会自动切换为原始的 Pandas 执行。也就是说,使用上与原始的 Pandas 是完全一致的。
STEP-1
首先安装:pip install modin,初次使用时会报错如下:

需要用到分布式引擎 Ray 或者 Dask,但是安装的时候它没有作为依赖项一起安装,需要单独安装:
pip install modin[dask]
STEP-2
接下来随便找个 csv 文件来测试一下数据读取速度:

可以看到没有变快,反而变慢了。因为分布式计算主要是加快处理内存占用型的任务,所以上图中的文件太小时没有体现出它的优势。
STEP-3
接下来整个大一点的文件试一下:

可以看到 IO 速度加快了几秒,但是没有文档中说的有明显的改进。这里原因应该是测试用的电脑硬件的问题(8G+4核+机械硬盘的一台老机器)。又或者是文件还不够大,但是测试时没有很大的数据集,而且再大内存要受不了了。但是好歹它还是快了一点,有空再研究一下正确的打开方式~
STEP-4
测试完在终端退出 Python 的时候出现了两个 ERROR:tornado.iostream.StreamClosedError 和 asyncio.base_futures.InvalidStateError,大意是读写流关闭的时候出现问题,估计不是上一步中影响速度的罪魁祸首。也可能是分布式引擎的兼容性问题,下次可以用 Ray 试一下。并且退出终端后,当前路径下会出现一个名为 dask-worker-space 的文件夹,里面有四个后缀名为 dirlock 的 worker 文件,是 Dask 引擎留下的临时文件。
待续
Modin:加速Pandas的库,

Modin是一个Python库,用于提升PandasAPI的执行速度,通过在多个内核上并行处理。尽管在小文件上可能表现不明显,但在处理大文件时能体现其优势。使用Modin需先安装,并选择如Dask的分布式引擎。在测试中,虽速度有所提升,但可能受硬件限制。退出时可能出现错误,且留下Dask的临时文件。
57

被折叠的 条评论
为什么被折叠?



