1

我正在处理大约 3*10^6 行和 11 列的面板数据块。这些数据存储在 SQL 数据库中(我使用的数据是更大数据集的子集)。我想处理数据块(每个日期分开)而不是一次全部导入,但是我必须在每个块上运行的操作是计算密集型的,所以我想使用foreach包。

但是,我在并行运行 sql 调用时遇到了一些问题。如果我做一个简单的调用,例如 ( sqlQuery(channel, "select 1")),我可以并行运行它。如果我执行更复杂的语句,我会收到 SIGPIPE 错误。有没有其他人遇到过类似的问题?

4

1 回答 1

1

您没有告诉我们您使用的是什么数据库。在与 RODBC 连接的 SQLServer 上,如果已通过使用事务成功完成此操作。

channel = odbcConnect(database)
odbcSetAutoCommit(channel,FALSE)
# Make requests here
odbcEndTran(channel,TRUE) 

我不确定当您像您的情况一样只有读取请求时这是否也会有所帮助,但可能值得一试,因为它只是额外的 twp 行。我询问了服务器,因为事务在 ODBC 下与 MSSqlServer 配合得很好,而且我与其他人的结果有些混杂(但没有努力)。

于 2011-11-23T16:40:52.473 回答