我正在通过 SQL 查询通过 R 收集数据。我有一个循环来提取大表的小块,保存块并删除块,重复一个小时左右,直到整个表位于我的 RSQL 目录中的平面文件中.
但是,R 每隔一段时间就会发出 Cputime limit exceeded: 24 错误。
我在跑山狮。
我努力了
nice -19n R CMD BATCH myscript.R
并且操作系统继续以奇数间隔终止该进程。我不相信脚本会卡在特定的操作上,只需要一段时间就可以完成循环。
循环看起来像这样..
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 的 shell 脚本启动 R,看看它是如何工作的。