Modin 之间的比较 | 达斯克 | 数据表| 用于并行处理和内存不足 csv 文件的 Pandas

Shu*_*ant 13 python pandas dask modin

Dask 的根本区别和主要用例是什么?莫丁 | 数据表

我检查了每个库的文档,它们似乎都为熊猫限制提供了“类似”的解决方案

Mar*_*ath 11

我正在尝试决定学习三种并行/内存不足计算的工具:dask,modindatatable(pandas不是并行工具,也不是针对内存不足计算的)。

datatable文档中没有找到任何内存不足的工具(在此处讨论),因此我只关注modindask

简而言之modin就是试图成为pandasAPI 的替代品,而dask被懒惰地评估。modin是一个列存储,而dask按行对数据帧进行分区。背后的分发引擎dask是集中式的,而modin(称为ray)的则不是。编辑:现在也modin支持dask作为计算引擎。

dask是第一个,拥有庞大的生态系统,看起来非常有据可查,在论坛中讨论并在视频中进行了演示。modin( ray) 有一些设计选择,使其在硬件错误的弹性和高性能序列化方面更加灵活。ray旨在在人工智能研究中最有用,但modin本身是通用的。ray还旨在实时应用程序以更好地支持实时强化学习。

更多细节在这里这里


Alb*_*hao 7

我的任务是处理每日股票交易数据,并发现了这篇文章。我的行长度约为 6000 万,列长度低于 10。我对read_csv和中的所有 3 个库进行了测试groupby mean。根据这个小测试,我的选择是dask。下面是三者的比较:

| library      | `read_csv` time | `groupby` time |
|--------------|-----------------|----------------|
| modin        | 175s            | 150s           |
| dask         | 0s (lazy load)  | 27s            |
| dask persist | 26s             | 1s             |
| datatable    | 8s              | 6s             |
Run Code Online (Sandbox Code Playgroud)

至少对于我的数据来说,这似乎modin不如dask目前那么有效。dask persist告诉dask您的数据可以放入内存,因此 dask 需要一些时间才能将所有内容放入而不是延迟加载。datatable最初所有数据都在内存中,并且在 read_csv 和 groupby 中都非常快。然而,考虑到它与 pandas 不兼容,似乎最好使用dask. 事实上,我来自 R,我非常熟悉 R 的 data.table,所以我在 python 中应用它的语法没有问题。如果datatablePython可以无缝连接到pandas(就像R中的data.frame那样)那么这将是我的选择。

  • 您分配给了多少个核心?难道“modin”由于是列存储而没有帮助,而“dask”按行分区? (2认同)