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