我需要在 PostgresSQL 中导入一个 10.352.223 KB 的数据库。我试图通过 R 中的 RPostgreSQL 库来做到这一点,但我遇到了问题。
我的代码是:
i<-10000
for(a in seq(0,36000000, i)){
data<-read.table("data.txt",sep="|",dec=",",
nrows=i,skip=a,fill=T,
colClasses=c(rep("NULL",2),"character",rep("NULL",64),
rep("character",2),rep("NULL",11),
"numeric",rep("NULL",9),"numeric",
rep("NULL",2)))
colnames(data)<-names
data$iteration<-rep(a,dim(data)[1])
dbWriteTable(con,"data",data, append=TRUE )
print(paste("registry", a, sep = " "))
}
在注册 469000 之前我没有问题,但在某些时候我有这个错误:
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
could not allocate memory (2048 Mb) in C function 'R_AllocStringBuffer'
如果我跳过很多行并阅读一些特定的行,我无法理解有什么问题。
我能做些什么?我必须直接使用 PosgreSQL 代码吗?R中有更好的方法吗?
我会很感激你的帮助。