0

Rを介してSQLクエリを介してデータを収集しています。大きなテーブルの小さなチャンクをプルし、チャンクを保存してチャンクをドロップするループがあり、テーブル全体がRSQLディレクトリのフラットファイルになるまで1時間ほど繰り返します.

ただし、R は Cputime limit exceeded: 24 エラーが頻繁に発生します。

マウンテンライオンをやっています。

私が試してみました

nice -19n R CMD バッチ myscript.R

そして、OS は奇妙な間隔でプロセスを強制終了し続けます。スクリプトが特定の操作でスタックしているとは思いません。ループを実行するのに時間がかかるだけです。

ループはそのように見えます..

for (i in 1:64){
  foobyte <- NULL
  for (j in 0:7){
    max id = 1000000
    rows = 1e5
    to = max_id * (rows * j) - (i * 7 * rows)
    from = max_id * (rows * (j-1)) - (1 * 7 * rows)
    foobit <- queryDB(paste("SELECT * FROM foobar where id <= ', to,' and id > ',from,';")
    foobyte <- rbind(foobit, foobyte)
    }
  filename <- paste("/my/data/dir/foobyte", j, ".csv", sep="")
  write.table(foobyte, filename)
}

クラッシュするまでに 30 ~ 90 分間実行されます。その端末セッションでのみ ulimit を呼び出すシェル スクリプトから R を起動してみて、これがどのように機能するかを確認します。

4

2 に答える 2