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