0
是否可以将来自多个文件的数据立即加载到ff数据框(ffdf)中? 可以说我有将多个CSV文件中的数据读入单个ffdf对象
big_file_part1.csv
big_file_part2.csv
big_file_part3.csv
我知道我可以每个CSV文件加载到一个单独的ffdf对象,然后ffdfrbind.fill在一起。 但是,这似乎是一个低效率的方式,加载东西两次。有更直接的方法吗?
是否可以将来自多个文件的数据立即加载到ff数据框(ffdf)中? 可以说我有将多个CSV文件中的数据读入单个ffdf对象
big_file_part1.csv
big_file_part2.csv
big_file_part3.csv
我知道我可以每个CSV文件加载到一个单独的ffdf对象,然后ffdfrbind.fill在一起。 但是,这似乎是一个低效率的方式,加载东西两次。有更直接的方法吗?
这是我做的(注意我的源数据没有任何标题)。
第一步 - 确保您的所有文件都在同一个文件夹中。将您的工作目录设置为该文件夹。
#load the ffbase library
library(ffbase)
#create a vector of the files that I want to load
temp = list.files(pattern="*.csv")
#create the first ffdf object for i = 1, this is necessary to establish the ff dataframe to append the rest
for (i in 1)
mydata <- read.csv.ffdf(file=temp[i], header=FALSE, VERBOSE=TRUE
, first.rows=100000, next.rows=100000, colClasses=NA)
#loop through the remaining objects
for (i in 2:length(temp))
mydata <- read.csv.ffdf(x = mydata, file=temp[i], header=FALSE, VERBOSE=TRUE
, first.rows=100000, next.rows=100000)
你的文件有多大? – 2014-10-17 18:57:25
实际上有27个文件,每个州有一个文件。总共10GB,但大多数状态都很小(<100MB),两种状态都较大(> 4GB>我的RAM) – LucasMation 2014-10-17 19:00:36
您可以使用read.csv.ffdf中的参数'x'将数据附加到现有的ffdf。如果不同的csv文件具有相同的结构当然。 – jwijffels 2014-10-20 07:23:44