Create a nanoarrow_array_stream from a Polars object
Description
Create a nanoarrow_array_stream from a Polars object
Usage
## S3 method for class 'polars_data_frame'
as_nanoarrow_array_stream(
x,
...,
schema = NULL,
polars_compat_level = c("newest", "oldest")
)
# S3 method for class 'polars_series'
as_nanoarrow_array_stream(
x,
...,
schema = NULL,
polars_compat_level = c("newest", "oldest")
)
Arguments
Value
A nanoarrow array stream
See Also
-
as_polars_series(\
: Import an array stream as a Series via the Arrow C stream interface.)
Examples
library("polars")
# Zero-copy round trip via nanoarrow
as_polars_series(letters[1:3], name = "letters") |>
nanoarrow::as_nanoarrow_array_stream() |>
as_polars_series()
#> shape: (3, 1)
#> ┌─────────┐
#> │ letters │
#> │ --- │
#> │ str │
#> ╞═════════╡
#> │ a │
#> │ b │
#> │ c │
#> └─────────┘
# Specify the schema
as_polars_series(1:3, name = "numbers") |>
nanoarrow::as_nanoarrow_array_stream(schema = nanoarrow::na_uint8()) |>
as_polars_series()
#> shape: (3, 1)
#> ┌─────────┐
#> │ numbers │
#> │ --- │
#> │ u8 │
#> ╞═════════╡
#> │ 1 │
#> │ 2 │
#> │ 3 │
#> └─────────┘
# DataFrame support
pl$DataFrame(a = 1:3, b = letters[1:3]) |>
nanoarrow::as_nanoarrow_array_stream() |>
as_polars_df()
#> shape: (3, 2)
#> ┌─────┬─────┐
#> │ a ┆ b │
#> │ --- ┆ --- │
#> │ i32 ┆ str │
#> ╞═════╪═════╡
#> │ 1 ┆ a │
#> │ 2 ┆ b │
#> │ 3 ┆ c │
#> └─────┴─────┘
# Compatibility level
as_polars_series(letters[1:3]) |>
nanoarrow::as_nanoarrow_array_stream(polars_compat_level = 1) |>
nanoarrow::infer_nanoarrow_schema() |>
format()
#> [1] "<nanoarrow_schema string_view>"
as_polars_series(letters[1:3]) |>
nanoarrow::as_nanoarrow_array_stream(polars_compat_level = "oldest") |>
nanoarrow::infer_nanoarrow_schema() |>
format()
#> [1] "<nanoarrow_schema large_string>"