R_Language 板


LINE

因為要打得太多了我想說還是再問一篇好了 我試過http://goo.gl/soE8XA這篇的方法 可是出現錯誤訊息如下 Loading required package: tcltk Error in .local(conn, name, value, ...) : RS_sqlite_import: data1.dat line 2 expected 2 columns of data but found 3 然後我google了這個錯誤 https://groups.google.com/forum/#!topic/sqldf/1VWgp9WJLr4 這篇有講到14年11月已經修改這個問題了 所以我不知道這樣是發生什麼事了 我還蠻想學會這招的 然後我還想問有關bigmemory跟ff跑起來的速度會比較慢嗎 謝謝 ※ 引述《jklkj (誠實可靠小郎君)》之銘言: : 標題: [問題] 記憶體不足 : 時間: Wed Jun 1 15:53:04 2016 : : : [問題類型]: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : 效能諮詢(我想讓R 跑更快) : : [軟體熟悉度]: : 入門(寫過其他程式,只是對語法不熟悉) : : [問題敘述]: : 目前我要把大概幾千萬筆的資料(目前只跑到2000多萬筆)放進R去, : 應該會有兩三個dataframe,每個dataframe都有數千萬筆 : 打算把R當作資料庫,不管是join或是一些資料的整理 : 我把資料一直rbind下去,超過兩千多萬筆之後就會出現記憶體不足的問題 : 想請問這樣的問題除了直接加記憶體以外(因為是公司的電腦) : 有別的方法嗎? : [程式範例]: : 程式範例就是很簡單的 : sale <- rbind(sale1, sale) : 錯誤訊息如下 : error: cannot allocate vector of size 256.0 mb : 我有找到一些解決的方法是加ram(其實我也很想加到32G)、用64bit(感覺我已經在用了) : 想請問一下有別的解決方法嗎? : : [環境敘述]: : R version 3.3.0 (2016-05-03) -- "Supposedly Educational" : Copyright (C) 2016 The R Foundation for Statistical Computing : Platform: x86_64-w64-mingw32/x64 (64-bit) : : [關鍵字]: : : 記憶體 不足 : : -- :



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.23.167.43
: ※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1464767586.A.407.html : → celestialgod: 那麼大的資料量還是直接用資料庫省事 06/01 16:18 : → cywhale: 記得看過用sqldf把檔案當暫時資料庫可以避掉記憶體不足 06/01 16:35 : → jklkj: http://bryannotes.blogspot.tw/2014/07/r-sqldf-vs-lappy. 06/01 17:13 : → jklkj: html 這個網站有看到作者用樓上說的sqldf,而且row數量也相 06/01 17:15 : → jklkj: 當多(應該夠我用一陣子了),想問一下這SQLDF是要怎麼當暫時 06/01 17:16 : → jklkj: 資料庫,感謝 06/01 17:16 : 推 cywhale: 我剛google一下 這篇 http://goo.gl/soE8XA 06/01 17:23 : → cywhale: 我自己沒用過,我也是跟一樓C大說的,直接用資料庫.. 06/01 17:24 : → cywhale: 如果資料都是同一種(如數值)或可以轉換,也可以用 06/01 17:25 : → cywhale: bigmemory in R.. 06/01 17:26 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.23.167.43
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1465007754.A.E37.html
1F:推 cywhale: 你想看的幾個解法https://goo.gl/Q3L6mY pdf p3開始都有 06/04 14:15
2F:→ cywhale: sqldf csv要靠 library(RH2) csvread in github Q10 06/04 14:18
3F:→ cywhale: https://goo.gl/b8wWBc 06/04 14:18
4F:→ cywhale: 基本上不管sqldf, bigmemory..都不快,如果新資料格式都 06/04 14:19
5F:→ cywhale: 相同,又有記憶體不夠問題,何不利用系統指令在R外就合併 06/04 14:20
6F:→ jklkj: 不好意思我不太了解要怎麼用系統指令在R外合併,而且我好奇 06/04 14:47
7F:→ jklkj: 的是既然我沒辦法rbind這些資料說是記憶體不足無法寫超過n 06/04 14:48
8F:→ jklkj: row的資料,那麼我在外面合併不是一樣也讀不進來嗎? 06/04 14:49
9F:→ jklkj: 其實我之前是一次讀全部幾千萬筆的資料,可是每次進來都只 06/04 14:49
10F:→ jklkj: 有900多萬筆(兩次筆數相同),所以我才以為是不是R在讀單次 06/04 14:50
11F:→ jklkj: 的資料列時有限制,我才回分開來讀 06/04 14:51
12F:推 cywhale: 看你目的,如果讀進來只是為了合併,而不做其他運算,那 06/04 15:00
13F:→ cywhale: 不如在R外做如cat 1.csv 2.csv > new.csv (linux) 06/04 15:04
14F:→ cywhale: 如要把超過記憶體的資料讀進來做其他運算,bigmemory這類 06/04 15:06
15F:→ cywhale: 放硬碟的方式有幫助,但bigmemory資料格式必須一致有限制 06/04 15:07
16F:→ cywhale: 如資料會sample or subset後再運算,那資料庫篩完再進R 06/04 15:08
17F:→ cywhale: 如果讀進來少資料,不是記憶體問題,有可能資料格式不整 06/04 15:11
18F:→ cywhale: 另外幾百萬筆,應該fread吃得下來,不妨試試看 06/04 15:14
19F:→ jklkj: 所以cat是linux的語法而fread是C++的語法,可是我剛好都沒 06/04 15:26
20F:→ jklkj: 在使用,我在自己研究一下,非常感謝幫助,之後我應該也會 06/04 15:27
21F:→ jklkj: 開始接觸相關的程式語言,感謝 06/04 15:28
22F:推 Wush978: 先檢查一下妳的資料在9百萬多的列有沒有 06/04 15:32
23F:推 Wush978: 格式錯誤 06/04 15:32
24F:→ cywhale: No 抱歉造成誤會 是library(data.table)中的fread 06/04 15:32
25F:→ Wush978: 都測測看read.table與read.csv 06/04 15:33
26F:推 Wush978: 兩者在資料出錯時的反應不太一樣 06/04 15:33
27F:→ Wush978: 大資料不要用rbind 盡量一次做完 06/04 15:34
28F:→ Wush978: rbind會花費額外的記憶體做資料的複製 06/04 15:35
29F:→ jklkj: 照理來說如果資料錯誤的話,不管是900萬筆或者是之後rbind 06/04 16:14
30F:→ jklkj: 的2000萬筆應該都會有相同的問題不是嗎?我的意思是假設我 06/04 16:15
31F:→ jklkj: 一開始全撈只有出現9,251,310筆,那麼我之後by年做rbind不 06/04 16:16
32F:→ jklkj: 是也會在第9,251,310出現錯誤嗎? 06/04 16:17
33F:→ jklkj: cywhale抱歉我沒有寫清楚,我目前是只有撈到2000多萬筆,之 06/04 16:17
34F:→ jklkj: 後可能每年會以千萬筆的資料量增加,所以我不確定fread吃不 06/04 16:18
35F:→ jklkj: 吃得下,還是感謝你,順便請問一個問題,所以csv檔在linux 06/04 16:19
36F:→ jklkj: 下沒有row的限制嗎?感謝 06/04 16:19
37F:→ Wush978: 沒有 06/04 18:35
38F:→ jklkj: 回報一下進度,剛裝了32G2的記憶體,順利地跑完了2000多萬 06/13 15:43
39F:→ jklkj: 筆,看來之前一次只能抓900多萬應該是因為記憶體無誤,只是 06/13 15:44
40F:→ jklkj: 不知道抓取的筆數跟記憶體的限制在哪,不然之後就算跑完也 06/13 15:45
41F:→ jklkj: 不敢確定跑完的是真的全部資料??? 06/13 15:45







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP