在R中获取行时出错

问题描述 投票:2回答:2

我想从R中的SQL服务器获取一些数据。我这样做的方式是,

rs=dbSendQuery(con,"myquery")
data=fetch(rs,n=-1)

这适用于小桌子。但是,对于更大的表,fetch命令说,

Warning message:
In fetch(ms, n = -1) : error while fetching rows

即使我限制行(n = 10),问题仍然存在。所以,我不确定这是一个超时问题还是什么。

可能是这样的?

数据显示,

1] creator ratio  
<0 rows> (or 0-length row.names)
mysql r
2个回答
1
投票

我想提到几点可以帮助OP识别和解决问题。

1)不要使用fetch。而是使用dbFetch。来自R-help的引用表明为

提供fetch()是为了与旧的DBI客户端兼容 - 对于所有新代码,强烈建议您使用dbFetch()

2)在Query Editor中从SQL Server Management Studio执行查询并检查性能。微调表使用查询索引。一旦准备好,快乐从R尝试

3)如果query选择了很多列,那么最好先尝试选择一列或两列。

4)我希望你在代码的后面部分释放资源并关闭连接。可以这样做:

# Free all resources
dbClearResult(rs) 
# Close connection
dbDisconnect(con)

-1
投票

当遇到类似问题时,我得到了this question的帮助。正如他们所建议的那样,尝试输入一个非常大的数字,如n = 1000000,而不是n = -1。这对我行得通。

© www.soinside.com 2019 - 2024. All rights reserved.