0

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

よろしくお願いします。

4

1 に答える 1

0

可能であれば、おそらくこれに使用したいと思うでしょうpsqlRPostgreSQLパッケージに欠けている可能性のある一括挿入機能があります。

パッケージを使用してコマンドを実行し、テーブルなどを作成することができます。

もちろん、パッケージ使用して最初にいくつかの N 行を挿入し、次に合計行数に達するまでさらに N 行を追加することもできます。

于 2016-10-26T19:45:12.403 に答える