在dplyr远程表

时间:2017-10-03 14:03:53

标签: r dplyr dbplyr

为了在数据库上实质上计算一些任意的R代码,我发现自己的一个非常常见的工作流是这样的:

1)查询远程数据库以将数据下拉到R。

2)在R中执行一些操作,通常用于生成无法在数据库中轻松计算的特征。

3)将数据上传回数据库以供将来访问。

现在,如果数据不是太大,那么这非常简单,生活在整齐中,我会做这样的事情:

ds <- tbl(con, "table") %>%
  collect() %>%
  mutate(complex_feature = ...)
copy_to(con, ds, "table_transformed", temporary = F)

哪个好(但如果有更好的方法请告诉我)。

但问题来自于我处理的数据集不适合内存。我可以采用split-apply-combine方法并编写一个循环来下载数据集的块,执行操作,并将它们附加到数据库中的表中,但这看起来并不优雅。

我认为这是一种更通用的方法,也许是使用tidyverse中的一些功能技术,但是有没有人有任何想法?

非常感谢你的帮助!

0 个答案:

没有答案