我目前可以通过beeline
CLI访问Apache Hive数据库。我们仍在与IT协商,以便在服务器上获取R
。在那之前,我希望(ab)使用R
dbplyr
包在另一台机器上生成SQL查询,将它们复制并作为原始SQL运行它们。我曾经在sql_render
中使用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()
有没有办法让这个&#39;虚拟&#39;连接?它可以通过我可以指定SQL变体的方式完成吗?
答案 0 :(得分:0)
您可以仅使用R生成内存中的SQLite数据库:
library(DBI)
library(odbc)
library(RSQLite)
library(tidyverse)
library(dbplyr)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
data("diamonds")
dbWriteTable(con, "diamonds", diamonds)
有了内存中的SQL数据库和db连接,您应该能够(ab)使用与数据库的dbplyr
连接来让R为您编写SQL。
这只是SQLite,而不是Hive。但是希望它仍然是从R到SQLite到Hive(或您首选的SQL版本)的加速器。
另请参阅以下链接: