当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dplyr compute 强制计算数据库查询


compute() 将结果存储在远程临时表中。 collect() 将数据检索到本地 tibble 中。 collapse() 略有不同:它不强制计算,而是强制生成 SQL 查询。有时需要这样做来解决 dplyr 的 SQL 生成中的错误。

所有函数都保留分组和排序。

用法

compute(x, ...)

collect(x, ...)

collapse(x, ...)

参数

x

数据帧、数据帧扩展(例如 tibble)或惰性数据帧(例如来自 dbplyr 或 dtplyr)。有关更多详细信息,请参阅下面的方法。

...

传递给方法的参数

方法

这些函数是泛型函数,这意味着包可以为其他类提供实现(方法)。有关额外参数和行为差异,请参阅各个方法的文档。

当前加载的包中可用的方法:

  • compute():dbplyr(tbl_sql)、dplyr(data.frame)

  • collect():dbplyr(tbl_sql)、dplyr(data.frame)

  • collapse():dbplyr(tbl_sql)、dplyr(data.frame)

也可以看看

copy_to() ,与 collect() 相反:它获取本地数据帧并将其上传到远程源。

例子

mtcars2 <- dbplyr::src_memdb() %>%
  copy_to(mtcars, name = "mtcars2-cc", overwrite = TRUE)

remote <- mtcars2 %>%
  filter(cyl == 8) %>%
  select(mpg:drat)

# Compute query and save in remote table
compute(remote)
#> # Source:   table<dbplyr_001> [?? x 5]
#> # Database: sqlite 3.41.2 [:memory:]
#>      mpg   cyl  disp    hp  drat
#>    <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1  18.7     8  360    175  3.15
#>  2  14.3     8  360    245  3.21
#>  3  16.4     8  276.   180  3.07
#>  4  17.3     8  276.   180  3.07
#>  5  15.2     8  276.   180  3.07
#>  6  10.4     8  472    205  2.93
#>  7  10.4     8  460    215  3   
#>  8  14.7     8  440    230  3.23
#>  9  15.5     8  318    150  2.76
#> 10  15.2     8  304    150  3.15
#> # ℹ more rows

# Compute query bring back to this session
collect(remote)
#> # A tibble: 14 × 5
#>      mpg   cyl  disp    hp  drat
#>    <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1  18.7     8  360    175  3.15
#>  2  14.3     8  360    245  3.21
#>  3  16.4     8  276.   180  3.07
#>  4  17.3     8  276.   180  3.07
#>  5  15.2     8  276.   180  3.07
#>  6  10.4     8  472    205  2.93
#>  7  10.4     8  460    215  3   
#>  8  14.7     8  440    230  3.23
#>  9  15.5     8  318    150  2.76
#> 10  15.2     8  304    150  3.15
#> 11  13.3     8  350    245  3.73
#> 12  19.2     8  400    175  3.08
#> 13  15.8     8  351    264  4.22
#> 14  15       8  301    335  3.54

# Creates a fresh query based on the generated SQL
collapse(remote)
#> # Source:   SQL [?? x 5]
#> # Database: sqlite 3.41.2 [:memory:]
#>      mpg   cyl  disp    hp  drat
#>    <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1  18.7     8  360    175  3.15
#>  2  14.3     8  360    245  3.21
#>  3  16.4     8  276.   180  3.07
#>  4  17.3     8  276.   180  3.07
#>  5  15.2     8  276.   180  3.07
#>  6  10.4     8  472    205  2.93
#>  7  10.4     8  460    215  3   
#>  8  14.7     8  440    230  3.23
#>  9  15.5     8  318    150  2.76
#> 10  15.2     8  304    150  3.15
#> # ℹ more rows

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Force computation of a database query。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。