These functions create type objects corresponding to Arrow types. Use them
when defining a schema()
or as inputs to other types, like struct
. Most
of these functions don't take arguments, but a few do.
int8() int16() int32() int64() uint8() uint16() uint32() uint64() float16() halffloat() float32() float() float64() boolean() bool() utf8() large_utf8() binary() large_binary() fixed_size_binary(byte_width) string() date32() date64() time32(unit = c("ms", "s")) time64(unit = c("ns", "us")) null() timestamp(unit = c("s", "ms", "us", "ns"), timezone = "") decimal(precision, scale) struct(...) list_of(type) large_list_of(type) fixed_size_list_of(type, list_size)
byte_width | byte width for |
---|---|
unit | For time/timestamp types, the time unit. |
timezone | For |
precision | For |
scale | For |
... | For |
type | For |
list_size | list size for |
An Arrow type object inheriting from DataType.
A few functions have aliases:
utf8()
and string()
float16()
and halffloat()
float32()
and float()
bool()
and boolean()
When called inside an arrow
function, such as schema()
or cast()
,
double()
also is supported as a way of creating a float64()
date32()
creates a datetime type with a "day" unit, like the R Date
class. date64()
has a "ms" unit.
uint32
(32 bit unsigned integer), uint64
(64 bit unsigned integer), and
int64
(64-bit signed integer) types may contain values that exceed the
range of R's integer
type (32-bit signed integer). When these arrow objects
are translated to R objects, uint32
and uint64
are converted to double
("numeric") and int64
is converted to bit64::integer64
. For int64
types, this conversion can be disabled (so that int64
always yields a
bit64::integer64
object) by setting options(arrow.int64_downcast = FALSE)
.
dictionary()
for creating a dictionary (factor-like) type.
bool() #> Boolean #> bool struct(a = int32(), b = double()) #> StructType #> struct<a: int32, b: double> timestamp("ms", timezone = "CEST") #> Timestamp #> timestamp[ms, tz=CEST] time64("ns") #> Time64 #> time64[ns]