pub fn cast_with_options(
    array: &dyn Array,
    to_type: &DataType,
    cast_options: &CastOptions<'_>
) -> Result<ArrayRef, ArrowError>
Expand description

Cast array to the provided data type and return a new Array with type to_type, if possible. It accepts CastOptions to allow consumers to configure cast behavior.

Behavior:

  • Boolean to Utf8: true => ‘1’, false => 0
  • Utf8 to boolean: true, yes, on, 1 => true, false, no, off, 0 => false, short variants are accepted, other strings return null or error
  • Utf8 to numeric: strings that can’t be parsed to numbers return null, float strings in integer casts return null
  • Numeric to boolean: 0 returns false, any other value returns true
  • List to List: the underlying data type is cast
  • Primitive to List: a list array with 1 value per slot is created
  • Date32 and Date64: precision lost when going to higher interval
  • Time32 and Time64: precision lost when going to higher interval
  • Timestamp and Date{32|64}: precision lost when going to higher interval
  • Temporal to/from backing primitive: zero-copy with data type change

Unsupported Casts

  • To or from StructArray
  • List to primitive