1
我有一個6mil行的大文件,我試圖讀取塊中的數據進行處理,所以我沒有達到我的RAM限制。這裏是我的代碼(注意temp.csv只是41只記錄一個虛擬文件):Chunks中的read.table - 錯誤消息
infile <- file("data/temp.csv", open="r")
headers <- as.character(read.table(infile, header = FALSE, nrows=1, sep=",", stringsAsFactors=FALSE))
while(length(temp <-read.table(infile, header = FALSE, nrows=10, sep=",", stringsAsFactors=FALSE)) > 0){
temp <- data.table(temp)
setnames(temp, colnames(temp), headers)
setkey(temp, Id)
print(temp[1, Tags])
}
print("hi")
close(infile)
一切順利,直到最後一次迭代。我得到這個錯誤信息:
Error in read.table(infile, header = FALSE, nrows = 10, sep = ",", stringsAsFactors = FALSE) :
no lines available in input
In addition: Warning message:
In read.table(infile, header = FALSE, nrows = 10, sep = ",", stringsAsFactors = FALSE) :
incomplete final line found by readTableHeader on 'data/temp.csv'
大概這是因爲最後的迭代只有1行記錄和read.table是10?
所有數據實際上都是正確讀取的。令人驚訝的是,即使在最後一次迭代中,temp
仍然會被轉換爲data.table
。但是print("hi")
之後的所有內容都不會被執行。我能做些什麼來解決這個問題嗎?
謝謝。
如果你只需要運行'FREAD( 「數據/ temp.csv」 09月= '')'會發生什麼? – mnel
@mnel即使使用read.table,我也可以加載整個數據集。問題是我在處理階段遇到RAM問題,因此'爲什麼我需要分解它。 – mchangun