2014-11-22 39 views
1

晚上好,R 2與FF崩潰加載一個大的數據集

我試圖將數據集加載爲R時(〜20點密耳的行,140〜COLS 6.2gb在磁盤上),使用任一的LaF和ffbase或FF。無論哪種情況,加載都會失敗。

struct <- detect_dm_csv(file = '/scratch/proj.csv', header = TRUE) 
colClasses <- struct$columns[,2] 
ldat <- laf_open(struct) 
data <- laf_to_ffdf(ldat) 

或 數據< - read.csv.ffdf(文件= 'proj.csv',colClasses = colClasses,標題= TRUE)

它針對位一班班沿,然後輸出的巨量的項目,如: 1L 1L 1L 這似乎對應於變量。

,然後列出像變量:變量名=列表() 然後 5:ffdfappend(X,塊) 6:laf_to_ffdf(LDAT)

最後詢問我想如何退出R.

我試過沉沒的輸出,但它沒有寫任何東西,因爲水槽沒有關閉(?),而它輸出的廢話數量似乎打破了我的滾動緩衝區。

有沒有人經歷過這個?

更多信息: 我在Windows 7虛擬機上運行了相同的腳本,並且沒有問題。幸運的是,我能夠看到所有廢話之前的錯誤,並且它陳述了一些關於「似乎不存在的物理地址」的問題,它將與mmap相關。

我將嘗試並重新編譯所有內容,看看它是怎麼回事。任何進一步的建議,請讓我知道!

+0

是不是colClasses在這裏是一個nrow向量? (而不是ncol) – mdsumner 2014-11-22 04:54:06

+0

長度(colClasses)= 141(ncol),如果我用LaF函數直接使用detect_dm_csv產生的結構,它會失敗,類似於ff的read.csv.ffdf – 2014-11-22 04:59:46

+0

你可以把它變成一個可重複的例子嗎?很高興看到造成這次事故的原因。但是從您所指示的看起來您的驅動器已滿。我認爲這個問題與此類似:http://stackoverflow.com/questions/25910746/r-ffdfappend-sigbus-error。所以請確保你的驅動器上有空間。如果將文件存儲在驅動器上,而不是將所有內容都放入RAM中。爲此,你當然需要在你的驅動器上有空間。 – jwijffels 2014-11-25 19:07:37

回答

1

你試過data.table的fread?

你可以測試:

library(data.table) 
data <- fread(file = '/scratch/proj.csv', verbose=TRUE) 

我有相似的大小和使用的fread一切順利的文件。