Skip to content

This is a method for the dplyr::compute() generic. For a duckplyr frame, compute() executes a query but stores it in a (temporary) table, or in a Parquet or CSV file. The result is a duckplyr frame that can be used with subsequent dplyr verbs.

Usage

# S3 method for class 'duckplyr_df'
compute(
  x,
  ...,
  prudence = NULL,
  name = NULL,
  schema_name = NULL,
  temporary = TRUE
)

Arguments

x

A duckplyr frame.

...

Arguments passed on to methods

prudence

Memory protection, controls if DuckDB may convert intermediate results in DuckDB-managed memory to data frames in R memory.

  • "lavish": regardless of size,

  • "stingy": never,

  • "thrifty": up to a maximum size of 1 million cells.

The default is to inherit from the input. This argument is provided here only for convenience. The same effect can be achieved by forwarding the output to as_duckdb_tibble() with the desired prudence. See vignette("prudence") for more information.

name

The name of the table to store the result in.

schema_name

The schema to store the result in, defaults to the current schema.

temporary

Set to FALSE to store the result in a permanent table.

Value

A duckplyr frame.

See also

Examples

library(duckplyr)
df <- duckdb_tibble(x = c(1, 2))
df <- mutate(df, y = 2)
explain(df)
#> ┌───────────────────────────┐
#> │         PROJECTION        │
#> │    ────────────────────   │
#> │             x             │
#> │             y             │
#> │                           │
#> │          ~2 Rows          │
#> └─────────────┬─────────────┘
#> ┌─────────────┴─────────────┐
#> │     R_DATAFRAME_SCAN      │
#> │    ────────────────────   │
#> │         data.frame        │
#> │                           │
#> │       Projections: x      │
#> │                           │
#> │          ~2 Rows          │
#> └───────────────────────────┘
df <- compute(df)
explain(df)
#> ┌───────────────────────────┐
#> │         SEQ_SCAN          │
#> │    ────────────────────   │
#> │    duckplyr_SwlKLUUEdL    │
#> │                           │
#> │        Projections:       │
#> │             x             │
#> │             y             │
#> │                           │
#> │          ~2 Rows          │
#> └───────────────────────────┘