跳到內容

這將進行必要的配置,以在 DuckDB 中建立由給定的 Arrow 物件支援的 (虛擬) 表格。在呼叫 collect()compute() 或針對表格執行查詢之前,不會複製或修改任何資料。

用法

to_duckdb(
  .data,
  con = arrow_duck_connection(),
  table_name = unique_arrow_tablename(),
  auto_disconnect = TRUE
)

參數

.data

用於 DuckDB 表格的 Arrow 物件 (例如 Dataset、Table)

con

要使用的 DuckDB 連線 (預設會建立一個並將其儲存在 options("arrow_duck_con") 中)

table_name

要在 DuckDB 中用於此物件的名稱。預設值是一個唯一的字串 "arrow_",後跟數字。

auto_disconnect

當移除產生的物件 (並進行垃圾回收) 時,是否應自動清除表格?預設值:TRUE

DuckDB 中新表格的 tbl

詳細資訊

結果是一個與 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.1.3 [unknown@Linux 6.8.0-1017-azure:R 4.4.2/: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  27.3     4   79     66  4.08  1.94  18.9     1     1     4     1
#> 2  16.4     8  276.   180  3.07  4.07  17.4     0     0     3     3
#> 3  17.3     8  276.   180  3.07  3.73  17.6     0     0     3     3
#> 4  15.2     8  276.   180  3.07  3.78  18       0     0     3     3
#> 5  19.7     6  145    175  3.62  2.77  15.5     0     1     5     6