13

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

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

4

2 回答 2

11

我正在尝试决定从这三个工具中学习哪个工具来进行并行/内存不足计算:daskmodindatatablepandas不是并行工具,也不针对内存不足计算)。

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

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

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

更多细节在这里这里

于 2019-06-13T20:08:28.517 回答
3

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

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

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

于 2020-01-01T04:16:52.167 回答