这将执行必要的配置,以在 DuckDB 中创建一个(虚拟)表,该表由给定的 Arrow 对象支持。在调用 collect()
或 compute()
或者针对该表运行查询之前,不会复制或修改任何数据。
用法
to_duckdb(
.data,
con = arrow_duck_connection(),
table_name = unique_arrow_tablename(),
auto_disconnect = TRUE
)
详细信息
结果是一个与 dbplyr 兼容的对象,可以在 d(b)plyr 管道中使用。
如果 auto_disconnect = TRUE
,则创建的 DuckDB 表将被配置为在垃圾回收 tbl
对象时取消注册。 如果您不想在使用完表对象后在 DuckDB 中保留额外的表对象,这将非常有用。
示例
library(dplyr)
ds <- InMemoryDataset$create(mtcars)
ds %>%
filter(mpg < 30) %>%
group_by(cyl) %>%
to_duckdb() %>%
slice_min(disp)
#> # Source: SQL [?? x 11]
#> # Database: DuckDB v1.2.1 [unknown@Linux 6.8.0-1021-azure:R 4.5.0/:memory:]
#> # Groups: cyl
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 16.4 8 276. 180 3.07 4.07 17.4 0 0 3 3
#> 2 17.3 8 276. 180 3.07 3.73 17.6 0 0 3 3
#> 3 15.2 8 276. 180 3.07 3.78 18 0 0 3 3
#> 4 27.3 4 79 66 4.08 1.94 18.9 1 1 4 1
#> 5 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6