看板 R_Language 關於我們 聯絡資訊
上面有問過一篇如何讀取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://www.ptt.cc/bbs/R_Language/M.1469369923.A.5E6.html
clickhere: 把3G切成6份下去平行即可. 07/24 23:20
celestialgod: 看你的操作要做什麼,再來考慮加速方法比較妥當 07/25 00:06
後來用cywhale大分享的bigmemory 套件 就解決了 現在讀DATA 不用100MB的RAM 平行要做一些資料整理 算XX公司 XX產品銷售總合 所以要做篩選 特別撈出那家公司算總和等等 過去處理類似資料都是用平行去加速 只是第一次碰到這麼大的DATA 不過還是謝謝拉
celestialgod: 做資料處理的話,3G用data.table只要有6G的記憶體 07/25 00:49
celestialgod: 應該都可以順利吃下 07/25 00:49
吃得下沒錯 但後續整理資料 如果要用到平行 可能就吃不下了 因為平行要告訴所有的R 你的DATA長什麼樣子 所以資料量一定倍增 ※ 編輯: f496328mm (114.36.63.67), 07/25/2016 00:55:14
celestialgod: 所以我意思是能夠不用平行解決就不用平行解決(攤手 07/25 01:11
celestialgod: 沒必要搞到那麼複雜 07/25 01:11
memphis: 你可以考慮用 multidplyr 07/25 13:15