标量工厂#

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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_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::stringstd::string 的大小不得超过 size_type 的最大大小。字符串字符应为 UTF-8 编码的 char 字节序列。

抛出:

std::bad_alloc – 如果设备内存分配失败

参数:
  • string – 要复制到设备的 std::string

  • stream – 用于设备内存操作的 CUDA 流。

  • mr – 用于分配标量的 datais_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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_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 – 用于分配标量的 datais_valid 布尔值的设备内存资源。

返回:

一个结构体标量