2016-09-26 7 views
0

問題が発生しました。大きなファイルをrでマージできません

私は10個の大きな別ファイルがあります。ファイルヘッダーなしのファイルタイプです。合計で4GBに近く、マージが必要です。私は彼らがテキストファイルとパイプで区切られていると言われているので、私は問題ではないことを望む各ファイルにファイル拡張子txtを追加しました。私は

"Error: C stack usage is too close to the limit r" and 

"In scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : 
Reached total allocation of 8183Mb: see help(memory.size)" 
ようなエラーが表示

temp1 <- read.csv(file="filename.txt", sep="|") 
: 
temp10 <- read.csv(file="filename.txt", sep="|") 

SomeData = Reduce(function(x, y) merge(x, y), list(temp1..., 
temp10)) 

...私は次のコードを使用する場合R Studioは...

multmerge = function(mypath){ 
filenames=list.files(path=mypath, full.names=TRUE) 
datalist = lapply(filenames, function(x){read.csv(file=x,header=F, sep 
= "|")}) 
Reduce(function(x,y) {merge(x,y, all=T)}, datalist)} 
mymergeddata = multmerge("C://FolderName//FolderName") 

をクラッシュしたり、私はこのような何かをしようとすると、

その後、私はこの質問を書いている間に誰かが質問をしたのを見ました。 hereですから、これらの大きなファイルをマージするためにSQLコマンドをR StudioまたはSSMSで使用できるかどうか疑問に思っていましたか?もし彼らがどのようにそれにマージすることができます。それができれば、どうすればいいか教えてください。私はネット上を見回します。

これらのかなり大きなファイルをマージするのに最適な方法はありません。 R Studioでこれを実現できますか、それともオープンソースがありますか?

私は8GB RAMを搭載した64ビットWindowsを搭載したPCで作業しています。私はRとSQLタグを含んで、そこにどのようなオプションがあるかを見てきました。

誰かが私を助けることができます場合は、事前におかげで。

答えて

0

ご使用のマシンに、選択した操作に必要なメモリが不足しています。

合計10ファイル〜4GBあります。 10個のファイルをマージすると、約4GBの別のオブジェクトが作成され、マシンの制限に非常に近づきます。

お使いのオペレーティングシステムとRなど、実行しているものもすべてRAMを消費するため、RAMが不足することはありません。

大きな機械加工にアクセスできない場合は、ステップワイズアプローチをとることをお勧めします。 - 最初の2つのファイルを取り出してマージします。 - ファイルオブジェクトをRから削除し、マージされたファイルオブジェクトのみを保持します。 - 3つ目のオブジェクトを読み込み、以前の合併とマージします。 完了するまで繰り返す。

+0

Clain - ご返信いただきありがとうございます。私があなたにアドバイスしようとしているので、私は警告メッセージを受け取ります。それは私がすべてのデータを読んでいないことを意味しますか? "警告メッセージ:スキャン中(ファイル=ファイル、what = what、sep = sep、引用=見積もり、dec = dec、:引用符付き文字列内のEOF)。 – DiscoDude

+0

@ValdClain - あなたの考えを試みました。エントリ。 – DiscoDude

関連する問題