首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dplyr后端无法找到适用于“sql_translate_env”的方法

Dplyr后端无法找到适用于“sql_translate_env”的方法
EN

Stack Overflow用户
提问于 2017-03-03 09:53:16
回答 1查看 421关注 0票数 0

我尝试在monetdb SQL-后端上运行一个简单的dplyr命令。连接本身似乎正常,但dplyr调用失败。我重新启动了RSession,并试图再次重新安装MonetDB.R包,但没有成功。

代码语言:javascript
复制
library(dplyr)
db <- MonetDB.R::src_monetdb("ai_db", user="analyst", host="monetdb.local", password="mypassword")

## works!
DBI::dbGetQuery(db$con, "SELECT count(*) from users")

## fails
db %>% tbl("users") %>% mutate(n= n())

资料来源:查询?X 7数据库: MonetDB 11.25.5 (2016年12月-SP1) UseMethod中的错误(“sql_translate_env”):没有适用于类"MonetDBConnection“对象的”sql_translate_env“方法

我在码头容器中使用默认的存储库/设置(packages.install("dplyr"))安装了dplyr (rocker/verse:3.3.2)。

更新1: MonetDBLite代替MonetDB.R

现在我安装了MonetDBLite,并使用以下代码创建了一个连接:

代码语言:javascript
复制
con <- mc(dbname="ai_db", user="analyst", password="mypassword", host="monetdb.local",
          timeout=86400000)
db <- MonetDBLite::src_monetdb("ai_db",con=con)

我设置了一个相当高的超时,因为有一条错误消息指示为“从低到低”(见下文)。但是,该命令再次失败,我不认为它与超时有关,因为它会立即失败。

代码语言:javascript
复制
## fails
db %>% tbl("users") %>% mutate(n= n())

资料来源:查询?X 7数据库: MonetDB 11.25.5 (2016年12月-SP1) .mapiRead中的错误(conObj@connenv$套接字):来自MonetDB服务器的空响应,可能是超时。您可以使用“dbConnect()”的“超时值”参数来增加等待响应的时间。

数据集真的很小(只有5000条条目),所以这应该不是什么大问题。MonetDB安装在同一台服务器上,工作性能很好,DBI接口也可以工作(并在一秒钟内返回结果):

代码语言:javascript
复制
DBI::dbGetQuery(con, "SELECT count(*) from videos")

更新2:

现在,我尝试了这两种方法,即MonetdbLite的开发版本和存储库中的稳定CRAN版本。两者都失败了,但有不同的错误。

代码语言:javascript
复制
packages.install("MonetDBLite")
db <- MonetDBLite::src_monetdb("ai_db", user="analyst", password="mypassword", host="monetdb.local")
db %>% tbl("users") %>% mutate(n= n())

资料来源:查询?X 7数据库: MonetDB 11.25.5 (2016年12月-SP1) .mapiRead中的错误(conObj@connenv$套接字):来自MonetDB服务器的空响应,可能是超时。您可以使用“dbConnect()”的“超时值”参数来增加等待响应的时间。

代码语言:javascript
复制
devtools::install_github( "hannesmuehleisen/MonetDBLite" )
db <- MonetDBLite::src_monetdb("ai_db", user="analyst", password="mypassword", host="monetdb.local")
db %>% tbl("users") %>% mutate(n= n())

资料来源:查询?继承中的X7错误(con_acquire(X),"MonetDBEmbeddedConnection"):找不到函数"con_acquire“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-03 10:15:58

请使用MonetDBLite包,它也包含连接到独立服务器的代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42575647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档