我正在尝试使用FF来读取R中的大型CSV文件。
我首先用csv.read读取前10行代码,以确保我没有做任何愚蠢的事情:
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 :(得分:0)
如果你打开了太多文件,看看ff会失败的地方运行:
require(ff)
x <- list()
for(i in 1:100000){
print(i)
x[[i]] <- ff(rnorm(10))
open(x[[i]] )
}
对我来说,这在1022个打开文件时失败了,但我还有一些其他打开文件。