dbplyr 中 database.table 的语法?
syntax for database.table in dbplyr?
我连接到我们的数据库:
con <- dbConnect(odbc::odbc(), "myHive")
我知道这是成功的,因为当我 运行 它时,在 RStudio 的右上角我可以看到我们所有的数据库和 tables.
我的问题是,我怎样才能select一个特定的数据库table组合?文档显示用户选择了单个 table、"flights",但我需要执行 somedatabase.sometable.
的等效操作
尝试过:
mytable <- tbl(con, "somedb.sometable")
Error in new_result(connection@ptr, statement) :
nanodbc/nanodbc.cpp:1344: 42S02: [Hortonworks][SQLEngine] (31740) Table or view not found: HIVE..dp_enterprise.uds_order
然后尝试:
mytable <- tbl(con, "somedb::sometable")
Error in new_result(connection@ptr, statement) :
nanodbc/nanodbc.cpp:1344: 42S02: [Hortonworks][SQLEngine] (31740) Table or view not found: HIVE..somedb::sometable
我也尝试删除引号 ""。
在 RStudio 的连接窗格中,我可以看到 somedb.sometable。在那!如何将其保存到变量 mytable?
我想我找到了,使用in_schema
mytable <- tbl(con, in_schema("somedb", "sometable"))
这个 returns 列表不是列表,所以我不确定。
您在创建连接时 select 数据库,在创建 tbl 时 table (使用 from
参数)。
dbConnect 没有标准接口,因此传递数据库名称的确切方式取决于您使用的 DBDriver。实际上 DBI::dbConnect
只是对特定于驱动程序的 dbConnect
.
的通用调度
在你的例子中,驱动程序是 odbc
所以你可以查看 the documentation for odbc::dbConnect
并且你会看到相关的参数是 database
.
这会起作用:
con <- dbConnect(odbc::odbc(), "myHive", database = "somedb")
df <- tbl(con, from = "sometable")
对于大多数其他驱动程序(例如 RMariaDB
、RMySQL
、RPostgres
、RSQLite
),参数称为 dbname
,因此您这样做:
con <- dbConnect(RMariaDB::MariaDB(), dbname = "somedb")
df <- tbl(con, from = "sometable")
我连接到我们的数据库:
con <- dbConnect(odbc::odbc(), "myHive")
我知道这是成功的,因为当我 运行 它时,在 RStudio 的右上角我可以看到我们所有的数据库和 tables.
我的问题是,我怎样才能select一个特定的数据库table组合?文档显示用户选择了单个 table、"flights",但我需要执行 somedatabase.sometable.
的等效操作尝试过:
mytable <- tbl(con, "somedb.sometable")
Error in new_result(connection@ptr, statement) :
nanodbc/nanodbc.cpp:1344: 42S02: [Hortonworks][SQLEngine] (31740) Table or view not found: HIVE..dp_enterprise.uds_order
然后尝试:
mytable <- tbl(con, "somedb::sometable")
Error in new_result(connection@ptr, statement) :
nanodbc/nanodbc.cpp:1344: 42S02: [Hortonworks][SQLEngine] (31740) Table or view not found: HIVE..somedb::sometable
我也尝试删除引号 ""。
在 RStudio 的连接窗格中,我可以看到 somedb.sometable。在那!如何将其保存到变量 mytable?
我想我找到了,使用in_schema
mytable <- tbl(con, in_schema("somedb", "sometable"))
这个 returns 列表不是列表,所以我不确定。
您在创建连接时 select 数据库,在创建 tbl 时 table (使用 from
参数)。
dbConnect 没有标准接口,因此传递数据库名称的确切方式取决于您使用的 DBDriver。实际上 DBI::dbConnect
只是对特定于驱动程序的 dbConnect
.
在你的例子中,驱动程序是 odbc
所以你可以查看 the documentation for odbc::dbConnect
并且你会看到相关的参数是 database
.
这会起作用:
con <- dbConnect(odbc::odbc(), "myHive", database = "somedb")
df <- tbl(con, from = "sometable")
对于大多数其他驱动程序(例如 RMariaDB
、RMySQL
、RPostgres
、RSQLite
),参数称为 dbname
,因此您这样做:
con <- dbConnect(RMariaDB::MariaDB(), dbname = "somedb")
df <- tbl(con, from = "sometable")