标量工厂#

group scalar_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

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

  • cudf::logic_error – 如果 type 不是数值类型

Parameters:
  • type – 所需的数值元素类型

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

未初始化的数值标量

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

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

  • cudf::logic_error – 如果 type 不是时间戳类型

Parameters:
  • type – 所需的时间戳元素类型

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

未初始化的时间戳标量

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

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

  • cudf::logic_error – 如果 type 不是持续时间类型

Parameters:
  • type – 所需的持续时间元素类型

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个未初始化的持续时间标量

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的值。

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

  • cudf::logic_error – 如果 type 不是固定宽度类型

Parameters:
  • type – 所需的固定宽度元素类型

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个未初始化的固定宽度标量

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())#

给定一个std::string构造STRING类型的标量。std::string的大小不得超过size_type的最大大小。字符串字符应为UTF-8编码的char字节序列。

Throws:

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

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

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个包含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 的默认构造标量

Throws:

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

Parameters:
  • type – 所需的元素类型

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个类型为 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())#

创建一个与input column_view类型相同的空(无效)标量。

Throws:

cudf::logic_error – 如果 input 列是结构类型且为空

Parameters:
  • input – 输入列的不可变视图,用于模拟

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个类型为 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())#

使用给定值的固定宽度类型构造标量。

Template Parameters:

T – 标量所表示的值的类型

Parameters:
  • value – 存储在标量对象中的值

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个类型为 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())#

使用给定的固定点类型的值构造标量。

Template Parameters:

T – 标量所表示的值的类型

Parameters:
  • value – 存储在标量对象中的值

  • scale – 定点值的比例

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个类型为 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())#

使用给定的元素列构造标量。

Parameters:
  • elements – 列表的元素

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个列表标量

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构造一个结构体标量。

列必须有一行。

Parameters:
  • data – 要存储在标量对象中的列数据

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个结构体标量

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())#

使用给定的列视图范围构造一个结构体标量。

列必须有一行。

Parameters:
  • data – 要存储在标量对象中的列数据

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

  • mr – 用于分配标量的datais_valid布尔值的设备内存资源。

Returns:

一个结构体标量