标量工厂#
- group Factories
函数
-
std::unique_ptr<scalar> make_numeric_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
构造具有未初始化存储空间的标量,用于保存指定数值
data_type
类型的值。- 抛出:
std::bad_alloc – 如果设备内存分配失败
cudf::logic_error – 如果
type
不是数值类型
- 参数:
type – 所需的数值元素类型
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个未初始化的数值标量
-
std::unique_ptr<scalar> make_timestamp_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
构造具有未初始化存储空间的标量,用于保存指定时间戳
data_type
类型的值。- 抛出:
std::bad_alloc – 如果设备内存分配失败
cudf::logic_error – 如果
type
不是时间戳类型
- 参数:
type – 所需的时间戳元素类型
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个未初始化的时间戳标量
-
std::unique_ptr<scalar> make_duration_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
构造具有未初始化存储空间的标量,用于保存指定时长
data_type
类型的值。- 抛出:
std::bad_alloc – 如果设备内存分配失败
cudf::logic_error – 如果
type
不是时长类型
- 参数:
type – 所需的时长元素类型
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个未初始化的时长标量
-
std::unique_ptr<scalar> make_fixed_width_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
构造具有未初始化存储空间的标量,用于保存指定固定宽度
data_type
类型的值。- 抛出:
std::bad_alloc – 如果设备内存分配失败
cudf::logic_error – 如果
type
不是固定宽度类型
- 参数:
type – 所需的固定宽度元素类型
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个未初始化的固定宽度标量
-
std::unique_ptr<scalar> make_string_scalar(std::string const &string, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
构造 STRING 类型的标量,给定一个
std::string
。std::string
的大小不得超过 size_type 的最大大小。字符串字符应为 UTF-8 编码的 char 字节序列。- 抛出:
std::bad_alloc – 如果设备内存分配失败
- 参数:
string – 要复制到设备的
std::string
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个包含
string
内容的字符串标量
-
std::unique_ptr<scalar> make_default_constructed_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
构造 type 类型的默认构造标量
- 抛出:
std::bad_alloc – 如果设备内存分配失败
- 参数:
type – 所需的元素类型
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个
type
类型的标量
-
std::unique_ptr<scalar> make_empty_scalar_like(column_view const &input, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建一个与输入 column_view 类型相同的空(无效)标量。
- 抛出:
cudf::logic_error – 如果输入
input
列是结构体类型且为空- 参数:
input – 要模拟的输入列的不可变视图
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个与
input
列类型相同的标量
-
template<typename T>
std::unique_ptr<scalar> make_fixed_width_scalar(T value, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())# 使用给定固定宽度类型的值构造标量。
- 模板参数:
T – 标量所表示值的类型
- 参数:
value – 要存储在标量对象中的值
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个
T
类型的标量
-
template<typename T>
std::unique_ptr<scalar> make_fixed_point_scalar(typename T::rep value, numeric::scale_type scale, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())# 使用给定定点类型的值构造标量。
- 模板参数:
T – 标量所表示值的类型
- 参数:
value – 要存储在标量对象中的值
scale – 定点值的比例
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个
T
类型的标量
-
std::unique_ptr<scalar> make_list_scalar(column_view elements, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
使用给定元素列构造标量。
- 参数:
elements – 列表的元素
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个列表标量
-
std::unique_ptr<scalar> make_struct_scalar(table_view const &data, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
使用给定 table_view 构造结构体标量。
列必须只有 1 行。
- 参数:
data – 要存储在标量对象中的列式数据
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个结构体标量
-
std::unique_ptr<scalar> make_struct_scalar(host_span<column_view const> data, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
使用给定 column view span 构造结构体标量。
列必须只有 1 行。
- 参数:
data – 要存储在标量对象中的列式数据
stream – 用于设备内存操作的 CUDA 流。
mr – 用于分配标量的
data
和is_valid
布尔值的设备内存资源。
- 返回:
一个结构体标量
-
std::unique_ptr<scalar> make_numeric_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#