ff数据存储运行大分析

时间:2013-09-08 16:09:54

标签: r bigdata

我花了几个小时阅读使用ff包,但还没有掌握这个主题。 基本上,我想对大数据进行分析并保存分析中的结果/统计数据。

我在我的数据集上使用biglm修改了在ff包中编写的示例代码。 http://cran.r-project.org/web/packages/ff/ff.pdf 问题与此问题非常相似 Modeling a very big data set (1.8 Million rows x 270 Columns) in R

以下是我的代码

library(ff)
library(ffbase)
library(doSNOW)


registerDoSNOW(makeCluster(4, type = "SOCK"))
memory.limit(size=32000)

setwd('Z:/data')
wd <- getwd()
data.path <- file.path(wd,'ffdb')
data.path.train <- file.path(data.path,'train')

ff.train <- read.table.ffdf(file='train.tsv', sep='\t')

save.ffdf(ff.train, dir=data.path.train)


library(biglm)

# Here I'm implementing biglm model on ffdf data
# Vi represents the column names

form <- V27 ~ V3 + V4 + V5 + V6 + V7 + V8 + V9 + V10 + V11 + V12 + V13 + V14 + V15
ff.biglm <- for (i in chunk(ff.train, by=500)){
  if (i[1]==1){
    message("first chunk is: ", i[[1]],":",i[[2]])
    biglmfit <- biglm(form, data=ff.train[i,,drop=FALSE])
  }else{
    message("next chunk is: ", i[[1]],":",i[[2]])
    biglmfit <- update(biglmfit, ff.train[i,,drop=FALSE])
  }
}

运行上面的代码时,它会显示以下错误消息:

  

第一个块是:1:494错误:无法分配大小为19.4 Gb In的向量   另外:有50个或更多警告(使用警告()来查看   第一次50)

这个关于biglmfit大小的错误信息是否适合内存? 有什么方法可以将biglmfit保存到ffdf数据类型中? 或者就此而言,有没有办法将分析统计数据存储到块中的ffdf类型? 谢谢。

编辑:

vmode(ff.train)
   V1        V2        V3        V4        V5        V6        V7        V8        V9   

    V10 
"integer" "integer" "integer" "integer" "integer" "integer" "integer" "integer" "integer" "integer" 
      V11       V12       V13       V14       V15       V16       V17       V18       V19       V20 
"integer" "integer" "integer" "integer" "integer" "integer" "integer" "integer" "integer" "integer" 
      V21       V22       V23       V24       V25       V26       V27 
"integer" "integer" "integer" "integer" "integer" "integer" "integer" 

0 个答案:

没有答案