【发布时间】:2021-01-24 20:10:55
【问题描述】:
很抱歉这个非常简单的问题,但是......
如何使用dbplyr 保存查询结果构建而不在内存中加载数据。
这是我尝试过的。
library(DBI)
library(odbc)
library(RPostgreSQL)
library(tidyverse)
library(magrittr)
#>
#> Attaching package: 'magrittr'
#> The following object is masked from 'package:purrr':
#>
#> set_names
#> The following object is masked from 'package:tidyr':
#>
#> extract
library(dbplyr)
#>
#> Attaching package: 'dbplyr'
#> The following objects are masked from 'package:dplyr':
#>
#> ident, sql
pgdrv <- dbDriver(drvName = "PostgreSQL")
con <-dbConnect(pgdrv,
dbname="genomes",
host="127.0.0.1", port=5432,
user = 'rotifer')
mtcars %<>%
rownames_to_column()
dbWriteTable(con, "cars", mtcars)
#> [1] TRUE
dbmtcars <- tbl(con, "cars")
dbmtcars %>%
mutate(ts = cyl * carb) -> newtb
newtb %>% show_query()
#> <SQL>
#> SELECT "row.names", "rowname", "mpg", "cyl", "disp", "hp", "drat", "wt", "qsec", "vs", "am", "gear", "carb", "cyl" * "carb" AS "ts"
#> FROM "cars"
newtb %>% db_write_table(con, "newtb")
#> Error in UseMethod("db_write_table"): no applicable method for 'db_write_table' applied to an object of class "c('tbl_PostgreSQLConnection', 'tbl_dbi', 'tbl_sql', 'tbl_lazy', 'tbl')"
由reprex package (v0.3.0) 于 2020 年 10 月 9 日创建
提前致谢
【问题讨论】:
标签: r postgresql tidyverse dbi dbplyr