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,)
#> Series: '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,)
#> Series: '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>"