Evaluate the query in streaming mode and write to a NDJSON file
Description
This allows streaming results that are larger than RAM to be written to disk.
Usage
<LazyFrame>$sink_ndjson(
path,
...,
maintain_order = TRUE,
type_coercion = TRUE,
`_type_check` = TRUE,
predicate_pushdown = TRUE,
projection_pushdown = TRUE,
simplify_expression = TRUE,
slice_pushdown = TRUE,
collapse_joins = TRUE,
no_optimization = FALSE,
storage_options = NULL,
retries = 2,
sync_on_close = c("none", "data", "all"),
mkdir = FALSE
)
Arguments
path
|
A character. File path to which the file should be written. |
…
|
These dots are for future extensions and must be empty. |
maintain_order
|
Maintain the order in which data is processed. Setting this to
FALSE will be slightly faster.
|
type_coercion
|
A logical, indicats type coercion optimization. |
\_type_check
|
For internal use only. |
predicate_pushdown
|
A logical, indicats predicate pushdown optimization. |
projection_pushdown
|
A logical, indicats projection pushdown optimization. |
simplify_expression
|
A logical, indicats simplify expression optimization. |
slice_pushdown
|
A logical, indicats slice pushdown optimization. |
collapse_joins
|
Collapse a join and filters into a faster join. |
no_optimization
|
A logical. If TRUE , turn off (certain) optimizations.
|
storage_options
|
Named vector containing options that indicate how to connect to a cloud
provider. The cloud providers currently supported are AWS, GCP, and
Azure. See supported keys here:
storage_options is not provided, Polars will try to
infer the information from environment variables.
|
retries
|
Number of retries if accessing a cloud instance fails. |
sync_on_close
|
Sync to disk when before closing a file. Must be one of:
|
mkdir
|
Recursively create all the directories in the path. |
Value
Invisibly returns the input LazyFrame
Examples
library("polars")
dat <- as_polars_lf(head(mtcars))
destination <- tempfile()
dat$select(pl$col("drat", "mpg"))$sink_ndjson(destination)
jsonlite::stream_in(file(destination))
#>
Found 6 records...
Imported 6 records. Simplifying...
#> drat mpg
#> 1 3.90 21.0
#> 2 3.90 21.0
#> 3 3.85 22.8
#> 4 3.08 21.4
#> 5 3.15 18.7
#> 6 2.76 18.1