→ andrew43: 讀入後你將進行什麼操作或分析? 03/04 00:36
→ andrew43: 我剛測一下,data.frame(runif(1.25e+08)) 用了快1GB, 03/04 01:20
推 andrew43: 但 data.tabe(runif(1.25e+08)) 用了快2GB。 03/04 01:20
→ squallscer: aggregation,filter,grouping,新增欄位,還有一些些的 03/04 01:20
→ squallscer: ETL,最後是要產出一個352X352的列聯表 03/04 01:21
→ andrew43: 什麼原因我不清楚……但data.frame並沒看到多浪費ram。 03/04 01:21
→ andrew43: 你可以先造假資料做做看。 03/04 01:23
→ andrew43: 大不了進swap,比較慢罷了。還不行再改用其它方法。 03/04 01:24
→ squallscer: 那篇文章為"記憶體不足"的回文中看到的~ 03/04 01:28
→ squallscer: 好的!謝謝 03/04 01:29
→ andrew43: 另外,你說3GB資料,是指文字檔案大小還是浮點數? 03/04 01:30
→ squallscer: 多數的column皆為文字資料 03/04 01:31
→ andrew43: 評估時應該換算成實際ram裡頭的資料型態,會準一點。 03/04 01:31
→ andrew43: 純文字的話,和3GB大概不會差太多了。 03/04 01:32
→ squallscer: 意思是在R裡看他所佔的記憶體大小嗎? 03/04 01:33
→ andrew43: 嗯,也可以這樣說啦。我只是想到"1"是1B但1.0是8B的差別 03/04 01:35
推 lofu: 推文不解釋 03/04 08:17
→ Wush978: 兩倍的說法來自於R的實作是copy on write,所以兩倍比較 03/04 19:50
→ Wush978: 安全。否則你一修改物件,就進swap了 03/04 19:50
→ Wush978: 這只是一個rule of thumb,實際還是和你的操作有關 03/04 19:52
→ Wush978: data.table能處理的資料量和電腦的記憶體比較有關 03/04 19:53
→ Wush978: 個人經驗是只要不進swap, 10g ~ 30g 的資料跑的動的 03/04 19:54
→ squallscer: 有什麼方法知道進入swap呢,電腦ram為16gb,3gb左右用d 03/04 21:54
→ squallscer: atatable處理起來還是要滿久~ 03/04 21:54
→ andrew43: 什麼作業系統呢? 03/04 22:16
→ squallscer: OSX 10.10 mbpr 13' RAM: 16GB,感謝前輩! 03/04 23:23
→ andrew43: 開Activity Monitor, 選Memory,看Swap used 03/04 23:32
→ andrew43: 正常情況這個量只有幾MB,超過就是爆了。 03/04 23:34
→ squallscer: 剛剛在做GB left_join GB,swap跑到123mb... 過陣子R s 03/05 01:03
→ squallscer: R session aborted 03/05 01:03
→ andrew43: swap用百MB應該都還好。R結束是被你結束還是自動結束的? 03/05 01:12
→ squallscer: 跑到跳掉@@我正在跑第二次 03/05 01:14
→ Wush978: 16gb 有 3gb應該很ok, 你可以把記憶體交給R 自己處理 03/05 07:35
→ Wush978: 用 03/05 07:35
→ Wush978: data.table的特色是可以在memory中建index加速存取 03/05 07:36
→ Wush978: 你有適當的建index嗎? 03/05 07:36
→ squallscer: 我有兩個data.table檔, 03/05 17:10
→ squallscer: Row:2000萬筆左右 Col:6,index都建在id,試過兩個 03/05 17:13
→ andrew43: 不知道原po要做的分析,改到database裡做可不可能? 03/05 17:17
→ andrew43: 不過還要多做不少工作,還要再寫sql。 03/05 17:18
→ squallscer: 試過兩個語法 ex:dplyr::left_join & Data[,list..] 03/05 17:31
→ squallscer: 這兩個都陣亡!,回a大,小弟因不熟MSSQL的語法所以才 03/05 17:32
→ squallscer: load進R來做,也想藉機會看看R的發揮性,我在找找看其他 03/05 17:33
→ squallscer: 方法, 有更有效率的方式我在回復文章!謝謝兩位前輩! 03/05 17:34
→ Wush978: index做在left_join的by看看呢? 03/05 17:58
→ squallscer: 我left_join的by就是放index了~ 03/05 18:08