daft.Expression.cast

daft.Expression.cast#

Expression.cast(dtype: DataType) Expression[source]#

Casts an expression to the given datatype if possible.

The following combinations of datatype casting is valid:

Target → Source ↓

Null

Boolean

Integers

Floats

Decimal128

String

Binary

Fixed-size Binary

Image

Fixed-shape Image

Embedding

Tensor

Fixed-shape Tensor

Python

List

Fixed-size List

Struct

Map

Timestamp

Date

Time

Duration

Null

Y

Y

Y

Y

Y

Y

Y

Y

N

N

Y

N

N

Y

Y

Y

Y

Y

Y

Y

Y

Y

Boolean

Y

Y

Y

Y

N

Y

Y

N

N

N

N

N

N

Y

N

N

N

N

N

N

N

N

Integers

Y

Y

Y

Y

Y

Y

Y

N

N

N

N

N

N

Y

N

N

N

N

Y

Y

Y

Y

Floats

Y

Y

Y

Y

Y

Y

Y

N

N

N

N

N

N

Y

N

M

N

N

Y

Y

Y

Y

Decimal128

Y

N

Y

Y

Y

N

N

N

N

N

N

N

N

Y

N

N

N

N

N

N

N

N

String

Y

N

Y

Y

N

Y

Y

N

N

N

N

N

N

Y

N

N

N

N

Y

Y

N

N

Binary

Y

N

Y

Y

N

Y

Y

Y

N

N

N

N

N

Y

N

N

N

N

N

N

N

N

Fixed-size Binary

Y

N

N

N

N

N

Y

N

N

N

N

N

N

Y

N

N

N

N

N

N

N

N

Image

N

N

N

N

N

N

N

N

Y

Y

N

Y

Y

Y

N

N

Y

N

N

N

N

N

Fixed-size Image

N

N

N

N

N

N

N

N

Y

Y

N

Y

Y

Y

Y

Y

N

N

N

N

N

N

Embedding

Y

N

N

N

N

n

N

N

N

Y

N

Y

Y

Y

Y

Y

N

N

N

N

N

N

Tensor

Y

N

N

N

N

N

N

N

Y

Y

N

Y

Y

Y

N

N

Y

N

N

N

N

N

Fixed-shape Tensor

N

N

N

N

N

N

N

N

N

Y

N

Y

Y

Y

Y

Y

N

N

N

N

N

N

Python

Y

Y

Y

Y

N

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

N

N

N

N

N

List

N

N

N

N

N

N

N

N

N

N

Y

N

N

N

Y

Y

N

Y

N

N

N

N

Fixed-size List

N

N

N

N

N

N

N

N

N

Y

N

N

Y

N

Y

Y

N

N

N

N

N

N

Struct

N

N

N

N

N

N

N

N

Y

N

N

Y

N

N

N

N

Y

N

N

N

N

N

Map

N

N

N

N

N

N

N

N

N

N

Y

N

N

N

Y

Y

N

Y

N

N

N

N

Timestamp

Y

N

Y

Y

N

Y

N

N

N

N

N

N

N

Y

N

N

N

N

Y

Y

Y

N

Date

Y

N

Y

Y

N

Y

N

N

N

N

N

N

N

Y

N

N

N

N

Y

Y

N

N

Time

Y

N

Y

Y

N

Y

N

N

N

N

N

N

N

Y

N

N

N

N

N

N

Y

N

Duration

Y

N

Y

Y

N

N

N

N

N

N

N

N

N

Y

N

N

N

N

N

N

N

N

Note

  • Overflowing values will be wrapped, e.g. 256 will be cast to 0 for an unsigned 8-bit integer.

Example

>>> import daft
>>> df = daft.from_pydict({"float": [1.0, 2.5, None]})
>>> df = df.select(daft.col("float").cast(daft.DataType.int64()))
>>> df.show()
╭───────╮
│ float │
│ ---   │
│ Int64 │
╞═══════╡
│ 1     │
├╌╌╌╌╌╌╌┤
│ 2     │
├╌╌╌╌╌╌╌┤
│ None  │
╰───────╯

(Showing first 3 of 3 rows)
Returns:

Expression with the specified new datatype

Return type:

Expression