Intel Xeon プロセッサと 24 GB の RAM を搭載した 64 ビット Windows Server 2008 マシンで作業しています。11 GB (>2400 万行、20 列) の特定の TSV (タブ区切り) ファイルを読み取ろうとして問題が発生しました。私のいつもの仲間 ,read.table
は私を失望させました. 私は現在ff
、この手順でパッケージを試しています:
> df <- read.delim.ffdf(file = "data.tsv",
+ header = TRUE,
+ VERBOSE = TRUE,
+ first.rows = 1e3,
+ next.rows = 1e6,
+ na.strings = c("", NA),
+ colClasses = c("NUMERO_PROCESSO" = "factor"))
これは約 600 万件のレコードで問題なく機能しますが、次のようにエラーが発生します。
read.table.ffdf 1..1000 (1000) csv-read=0.14sec ffdf-write=0.2sec
read.table.ffdf 1001..1001000 (1000000) csv-read=240.92sec ffdf-write=67.32sec
read.table.ffdf 1001001..2001000 (1000000) csv-read=179.15sec ffdf-write=94.13sec
read.table.ffdf 2001001..3001000 (1000000) csv-read=792.36sec ffdf-write=68.89sec
read.table.ffdf 3001001..4001000 (1000000) csv-read=192.57sec ffdf-write=83.26sec
read.table.ffdf 4001001..5001000 (1000000) csv-read=187.23sec ffdf-write=78.45sec
read.table.ffdf 5001001..6001000 (1000000) csv-read=193.91sec ffdf-write=94.01sec
read.table.ffdf 6001001..
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
could not allocate memory (2048 Mb) in C function 'R_AllocStringBuffer'
私が間違っていなければ、R はデータを読み取るためのメモリが不足していると不平を言っていますが、データを読み取るread...ffdf
ときに大量のメモリを使用することを回避する手順は想定されていませんでしたか? ここで何が間違っているのでしょうか?