我目前可以通过以下方式访问 Apache Hive 数据库beeline
命令行界面。我们仍在与 IT 部门协商以获得R
在服务器上。在那之前,我想(ab)使用R
dbplyr
包以在另一台计算机上生成 SQL 查询,将其复制过来,然后将其作为原始 SQL 运行。我用过sql_render
in dbplyr
过去,在我有有效的数据库连接的情况下,但我不知道如何在没有有效的数据库连接的情况下执行此操作。对我来说,理想的情况是这样的:
con <- dummy_connection('hive') # this does not exist, I think
qry <- tbl(con,'mytable') %>% # complex logic to build a query
select(var1,var2) %>%
filter(var1 > 0) # etc...
sql_render(qry) %>% # cat it to a file to be used on another machine.
as.character() %>%
cat()
有没有办法建立这种“虚拟”连接?是否可以通过指定 SQL 变体的方式来完成?
您可以仅使用 R 生成内存 SQLite 数据库:
library(DBI)
library(odbc)
library(RSQLite)
library(tidyverse)
library(dbplyr)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
data("diamonds")
dbWriteTable(con, "diamonds", diamonds)
通过内存中的 SQL 数据库和数据库连接,您应该能够(ab)使用dbplyr
连接到数据库,让 R 为您编写 SQL。
这只是 SQLite,而不是 Hive。但希望它仍然是从 R 到 SQLite 再到 Hive(或您喜欢的 SQL 版本)的加速器。
另请参阅以下链接:
- SQLite 小插图
-
布拉德利的演示(以上代码来源)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)