快速提问:我正在使用 RODBC 连接以批处理模式并行运行多个 R 实例,并且随机一个(或多个)实例失败。如果我回去一个一个地运行实例,它们都成功了。日志中没有错误,我只是想推断出问题的确切来源。我的主要假设是我遇到了内存堆顶部并且实例失败了,或者(更有可能)RODCB 连接发生了某种超时。有什么建议么?
谢谢,
吉姆
快速提问:我正在使用 RODBC 连接以批处理模式并行运行多个 R 实例,并且随机一个(或多个)实例失败。如果我回去一个一个地运行实例,它们都成功了。日志中没有错误,我只是想推断出问题的确切来源。我的主要假设是我遇到了内存堆顶部并且实例失败了,或者(更有可能)RODCB 连接发生了某种超时。有什么建议么?
谢谢,
吉姆
不清楚为什么没有显示错误,也许你可以试试options(error = recover)
使用多个数据库连接时,我曾经收到以下错误:
Error in mysqlExecStatement(conn, statement, ...) :
RS-DBI driver: (connection with pending rows, close resultSet before continuing)
我通过在发出新查询之前发出以下行来关闭任何打开的连接来避免此错误:
lapply(dbListConnections(MySQL()), dbDisconnect)
我从R 帮助列表中获取了这段代码。
更新:我的一个合作者创建了一套函数来促进数据库交互,包括db.con
, db.open
, db.close
,db.query
可以像这样使用:
## load functions
source("https://raw.github.com/PecanProject/pecan/master/db/R/utils.R")
## example
params <- list(dbname = "mydb", username = "myname", password = "!#@?$")
con <- db.open(params)
mydata <- db.query("select * from mytable;")
db.close(con)