[英]Comparison between Modin | Dask | Data.table | Pandas for parallel processing and out of memory csv files
Dask 的根本區別和主要用例是什么? 莫丁 | 數據表
我檢查了每個庫的文檔,它們似乎都為熊貓限制提供了“類似”的解決方案
我試圖決定學習三對並口/外的內存計算的該工具: dask
, modin
或datatable
( pandas
是不是平行的工具,也不是為了出的內存計算)。
沒有找到內存外的任何工具在datatable
文件(討論這里),所以我只專注於modin
和dask
。
總之modin
正試圖成為一個下拉更換為pandas
API,而dask
是懶洋洋地評估。 modin
是一個列存儲,而dask
分區的數據幀由行。 背后的分發引擎dask
集中,而中modin
(被稱為ray
)不是。 編輯:現在modin
支持dask
作為計算引擎了。
dask
是第一個,擁有龐大的生態系統,並且看起來非常有據可查,在論壇中進行了討論並在視頻中進行了演示。 modin
( ray
) 有一些設計選擇,使其在硬件錯誤的彈性和高性能序列化方面更加靈活。 ray
目標是在 AI 研究中最有用,但modin
本身是通用的。 ray
還針對實時應用,以更好地支持實時強化學習。
我有一項處理每日股票交易數據的任務,並遇到了這篇文章。 我的行的長度約為 6000 萬,列的長度低於 10。我在read_csv
和groupby mean
對所有 3 個庫進行了測試。 基於這個小測試,我的選擇是dask
。 下面是三者的對比:
| library | `read_csv` time | `groupby` time |
|--------------|-----------------|----------------|
| modin | 175s | 150s |
| dask | 0s (lazy load) | 27s |
| dask persist | 26s | 1s |
| datatable | 8s | 6s |
看來, modin
是效率不高的dask
此刻,至少我的數據。 dask persist
告訴dask
您的數據可以放入內存中,因此 dask 需要一些時間將所有內容放入而不是延遲加載。 datatable
最初在內存中包含所有數據,並且在 read_csv 和 groupby 中都非常快。 但是,鑒於它與熊貓不兼容,使用dask
似乎更好。 實際上我來自 R 並且我非常熟悉 R 的 data.table 所以我在 python 中應用它的語法沒有問題。 如果 python 中的datatable
可以無縫連接到 Pandas(就像 R 中的 data.frame 那樣),那么這將是我的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.