作者f496328mm (為什麼會流淚)
看板R_Language
標題[問題] fread讀資料 and 使用 snow 平行
時間Sun Jul 24 22:18:41 2016
上面有問過一篇如何讀取3G的DATA
-----------------------------------------------------------
所以現在使用fread 去讀取3G的DATA,但是這樣會讓我RAM至少花3G在跑
如果要使用snow去做平行,我幾乎要複製同等大小的DATA給不同的R
例如我要開6個做平行,那我就要花費3G*7=21G的RAM
(我工作管理員有8個程序在跑)
即使開到4個做平行,也要3G*5=15G的RAM
這樣RAM使用量太大了,雖然可以加裝RAM到32G
但有沒有別的方法,一次性對整個DATA去處理,
我知道可以把DATA分幾塊,做完輸出清空RAM,在去做下一塊DATA
但這樣有點麻煩
----------------------------------------------------------
有看到下面那篇 bigmemory
目前正在嘗試中
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.63.67
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1469369923.A.5E6.html
1F:→ clickhere: 把3G切成6份下去平行即可. 07/24 23:20
2F:→ celestialgod: 看你的操作要做什麼,再來考慮加速方法比較妥當 07/25 00:06
後來用cywhale大分享的bigmemory 套件
就解決了 現在讀DATA 不用100MB的RAM
平行要做一些資料整理 算XX公司 XX產品銷售總合
所以要做篩選 特別撈出那家公司算總和等等
過去處理類似資料都是用平行去加速 只是第一次碰到這麼大的DATA
不過還是謝謝拉
3F:→ celestialgod: 做資料處理的話,3G用data.table只要有6G的記憶體 07/25 00:49
4F:→ celestialgod: 應該都可以順利吃下 07/25 00:49
吃得下沒錯 但後續整理資料 如果要用到平行 可能就吃不下了
因為平行要告訴所有的R 你的DATA長什麼樣子 所以資料量一定倍增
※ 編輯: f496328mm (114.36.63.67), 07/25/2016 00:55:14
5F:→ celestialgod: 所以我意思是能夠不用平行解決就不用平行解決(攤手 07/25 01:11
6F:→ celestialgod: 沒必要搞到那麼複雜 07/25 01:11
7F:推 memphis: 你可以考慮用 multidplyr 07/25 13:15