2012-09-05 52 views
0

我試圖用FF閱讀了大量的CSV文件中R.有關如何調試此FF錯誤的任何想法?

我第一次讀到第10行與csv.read的代碼,以確保我沒有做任何愚蠢的事:

trainFileName = "./TrainingSet/SplitFiles/7_train_data.csv" 
trainSet <- read.csv(trainFileName, header=TRUE, nrows=10) 
length(trainSet[1,]) 
length(trainSet[,1]) 

這告訴我:

> trainFileName = "./TrainingSet/SplitFiles/7_train_data.csv" 
> trainSet <- read.csv(trainFileName, header=TRUE, nrows=10) 
> length(trainSet[1,]) 
[1] 4505 
> length(trainSet[,1]) 
[1] 10 

到目前爲止好。現在我儘量重複這一壯舉與FF:

trainSet <- read.csv.ffdf(file = trainFileName, header = TRUE, nrows = 10, VERBOSE = TRUE) 

在這裏,我們會失敗:

read.table.ffdf 1..10 (10) csv-read=0.552sec 
Error in if (dfile ==   getOption("fftempdir")) finalizer <- "delete" else finalizer <- "close" : argument is of length zero 
Error in setwd(cwd) : character argument expected 

我無法找到此錯誤的任何更多的信息在任何地方,我看不出我可以做任何簡單的事情,所以在我深入研究FF源之前,有沒有人有任何想法?

我試過加載整個文件而不是前10行,指定列數據類型和總是相同的錯誤。

在此先感謝。

+0

問題可能是[你有那麼多列](https://stat.ethz.ch/pipermail/r-sig-hpc/2010-April/000606.html)。 – Roland

回答

0

是的,你有太多的列。在ff中,每一列都是一個文件。無法打開的文件超過你的文件系統可以在同一時間

開來看看在那裏,如果你有太多的文件FF將無法打開這條命令:

require(ff) 
x <- list() 
for(i in 1:100000){ 
    print(i) 
    x[[i]] <- ff(rnorm(10)) 
    open(x[[i]]) 
} 

對於我來說,這並沒有在1022打開文件,但我還有其他一些打開的文件。

相關問題