2016-10-26 24 views
0

PostgresSQLに10.352.223 KBのデータベースをインポートする必要があります。 RのRPostgreSQLライブラリを使ってやろうとしていますが、問題がありました。RからRPostgreSQLライブラリ経由で大きなデータベースをPostgreSQLにインポートする

私のコードは次のとおりです。

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にはもっと良い方法がありますか?

私はあなたの助けに感謝します。

答えて

0

可能であれば、psqlを使用します。それは、RPostgreSQLパッケージが不足しているかもしれないバルク挿入設備を持っています。

あなたはまだ、テーブルなどのPPを作成するコマンドを実行するためにパッケージを使用することができます。

をあなたはもちろんはあなたまでN以上の行を追加し、最初のいくつかのN行を挿入するためにパッケージを使用して、することができます総行数に達する。

関連する問題