标量类#

group scalar_classes
class scalar#
#include <scalar.hpp>

一个拥有类来表示一个单一的值。

标量是cudf中任何支持的数据类型的单一值。从该类派生的类用于表示标量。在传递给外部libcudf API时,派生类的对象应向上转换为该类。

由 cudf::detail::fixed_width_scalar< T > 子类化,cudf::fixed_point_scalar< T >, cudf::list_scalar, cudf::string_scalar, cudf::struct_scalar

公共函数

data_type type() const noexcept#

返回标量的逻辑值类型。

Returns:

标量的逻辑值类型

void set_valid_async(bool is_valid, rmm::cuda_stream_view stream = cudf::get_default_stream())#

更新值的有效性。

Parameters:
  • is_valid – true: 将值设置为有效。false: 将其设置为null。

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

bool is_valid(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#

指示标量是否包含有效值。

注意

is_valid() == false时使用该值是未定义行为。此外,此函数会执行流同步。

Parameters:

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

Returns:

真实值是有效的

Returns:

false 值无效/为空

bool *validity_data()#

返回指向设备内存中有效性布尔值的原始指针。

Returns:

指向设备内存中有效性布尔值的原始指针

bool const *validity_data() const#

返回指向设备内存中有效性布尔值的常量原始指针。

Returns:

指向设备内存中有效性布尔值的原始指针

template<typename T>
class numeric_scalar : public cudf::detail::fixed_width_scalar<T>#
#include <scalar.hpp>

一个拥有类,用于表示设备内存中的数值。

Template Parameters:

T – 数值的数据类型。

公共函数

numeric_scalar(numeric_scalar &&other) = default#

numeric_scalar 的移动构造函数。

Parameters:

other – 要从中移动的另一个 numeric_scalar

numeric_scalar(numeric_scalar const &other, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过深度复制另一个对象来构造一个新的数值标量对象。

Parameters:
  • other – 要复制的标量。

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

  • mr – 用于设备内存分配的设备内存资源。

numeric_scalar(T value, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

构造一个新的数值标量对象。

Parameters:
  • value – 标量的初始值。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

numeric_scalar(rmm::device_scalar<T> &&data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从现有的设备内存中构造一个新的数值标量对象。

Parameters:
  • data – 设备内存中的标量数据。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

template<typename T>
class fixed_point_scalar : public cudf::scalar#
#include <scalar.hpp>

一个拥有类,用于表示设备内存中的fixed_point数字。

Template Parameters:

T – fixed_point 数字的数据类型。

公共类型

using rep_type = typename T::rep#

fixed_point 数字的表示类型。

using value_type = T#

fixed_point 数字的值类型。

公共函数

fixed_point_scalar(fixed_point_scalar &&other) = default#

fixed_point_scalar 的移动构造函数。

Parameters:

其他 – 要从中移动的另一个 fixed_point_scalar

fixed_point_scalar(fixed_point_scalar const &other, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过深度复制另一个对象来构造一个新的固定点标量对象。

Parameters:
  • other – 要复制的标量。

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

  • mr – 用于设备内存分配的设备内存资源。

fixed_point_scalar(rep_type value, numeric::scale_type scale, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从已经移位后的值和比例构造一个新的定点标量对象。

Parameters:
  • value – 固定点标量的初始偏移值。

  • scale – 固定点标量的比例。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

fixed_point_scalar(rep_type value, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从值和默认的0比例构造一个新的fixed_point标量对象。

Parameters:
  • value – 固定点标量的初始值。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

fixed_point_scalar(T value, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从固定点数构造一个新的固定点标量对象。

Parameters:
  • value – 用于初始化固定点标量的固定点数。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

fixed_point_scalar(rmm::device_scalar<rep_type> &&data, numeric::scale_type scale, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从现有的设备内存中构造一个新的固定点标量对象。

Parameters:
  • data – 设备内存中的标量数据。

  • scale – 固定点标量的比例。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

rep_type value(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#

获取标量的值。

Parameters:

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

Returns:

标量的值

T fixed_point_value(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#

获取decimal32、decimal64或decimal128。

Parameters:

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

Returns:

decimal32、decimal64 或 decimal128 值

explicit operator value_type() const#

显式转换操作符以获取主机上标量的值。

rep_type *data()#

返回指向设备内存中值的原始指针。

Returns:

指向设备内存中值的原始指针

rep_type const *data() const#

返回指向设备内存中值的常量原始指针。

Returns:

指向设备内存中值的常量原始指针

class string_scalar : public cudf::scalar#
#include <scalar.hpp>

一个拥有类,用于表示设备内存中的字符串。

公共类型

using value_type = cudf::string_view#

字符串标量的值类型。

公共函数

string_scalar(string_scalar &&other) = default#

string_scalar 的移动构造函数。

Parameters:

other – 要从中移动的另一个 string_scalar

string_scalar(string_scalar const &other, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过深度复制另一个string_scalar来构造一个新的字符串标量对象。

Parameters:
  • other – 要复制的另一个 string_scalar

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

  • mr – 用于设备内存分配的设备内存资源。

string_scalar(std::string const &string, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

构造一个新的字符串标量对象。

Throws:

std::overflow_error – 如果输入字符串的大小超过 cudf::size_type

Parameters:
  • string – 字符串的值。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

string_scalar(value_type const &source, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

string_view构造一个新的字符串标量对象。

请注意,此函数复制由string_view指向的数据。

Parameters:
  • source – 指向要复制的字符串值的 string_view

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

string_scalar(rmm::device_scalar<value_type> &data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从设备内存中的string_view构造一个新的字符串标量对象。

请注意,此函数复制由string_view指向的数据。

Parameters:
  • data – 指向要复制的字符串值的string_view的设备标量。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

string_scalar(rmm::device_buffer &&data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过移动现有的字符串数据缓冲区来构造一个新的字符串标量对象。

请注意,此构造函数将现有缓冲区移动到内部数据缓冲区;不执行复制。

Parameters:
  • data – 要接管的现有缓冲区。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

explicit operator std::string() const#

显式转换运算符以获取主机 std::string 中的标量值。

std::string to_string(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#

获取主机 std::string 中的标量值。

Parameters:

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

Returns:

主机 std::string 中的标量值

value_type value(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#

获取标量的值作为string_view

Parameters:

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

Returns:

标量的值作为 string_view

size_type size() const#

返回字符串的字节大小。

Returns:

字符串的大小(以字节为单位)

char const *data() const#

返回指向设备内存中字符串的原始指针。

Returns:

指向设备内存中字符串的原始指针

template<typename T>
class chrono_scalar : public cudf::detail::fixed_width_scalar<T>#
#include <scalar.hpp>

一个拥有类,用于表示设备内存中的时间戳/持续时间值。

另请参阅

cudf/wrappers/timestamps.hpp, cudf/wrappers/durations.hpp 查看允许类型的列表。

Template Parameters:

T – 时间戳/持续时间值的数据类型。

cudf::duration_scalar< T >, cudf::timestamp_scalar< T > 子类化

公共函数

chrono_scalar(chrono_scalar &&other) = default#

chrono_scalar 的移动构造函数。

Parameters:

other – 要从中移动的另一个 chrono_scalar

chrono_scalar(chrono_scalar const &other, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过深度复制另一个对象来构造一个新的时间标量对象。

Parameters:
  • other – 要复制的标量。

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

  • mr – 用于设备内存分配的设备内存资源。

chrono_scalar(T value, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

构造一个新的时间标量对象。

Parameters:
  • value – 标量的初始值。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

chrono_scalar(rmm::device_scalar<T> &&data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从现有的设备内存中构造一个新的时间标量对象。

Parameters:
  • data – 设备内存中的标量数据。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

template<typename T>
class timestamp_scalar : public cudf::chrono_scalar<T>#
#include <scalar.hpp>

一个拥有类,用于表示设备内存中的时间戳值。

另请参阅

cudf/wrappers/timestamps.hpp 查看允许类型的列表。

Template Parameters:

T – 时间戳值的数据类型。

公共类型

using rep_type = typename T::rep#

时间戳的基础表示类型。

公共函数

timestamp_scalar(timestamp_scalar &&other) = default#

timestamp_scalar 的移动构造函数。

Parameters:

其他 – 要从中移动的另一个 timestamp_scalar

timestamp_scalar(timestamp_scalar const &other, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过深度复制另一个对象来构造一个新的时间戳标量对象。

Parameters:
  • other – 要复制的标量。

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

  • mr – 用于设备内存分配的设备内存资源。

template<typename Duration2>
timestamp_scalar(Duration2 const &value, bool is_valid, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从可转换为T::duration的持续时间构造一个新的时间戳标量对象。

Parameters:
  • value – 表示自UNIX纪元以来的刻度数的持续时间,或可转换为时间戳持续时间的另一个持续时间。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

rep_type ticks_since_epoch(rmm::cuda_stream_view stream)#

返回自UNIX纪元以来的持续时间,以滴答数为单位。

Parameters:

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

Returns:

自UNIX纪元以来的滴答数持续时间

template<typename T>
class duration_scalar : public cudf::chrono_scalar<T>#
#include <scalar.hpp>

一个拥有类,用于表示设备内存中的持续时间值。

另请参阅

cudf/wrappers/durations.hpp 查看允许类型的列表。

Template Parameters:

T – 持续时间值的数据类型。

公共类型

using rep_type = typename T::rep#

持续时间的基础表示类型。

公共函数

duration_scalar(duration_scalar &&other) = default#

duration_scalar 的移动构造函数。

Parameters:

其他 – 要从中移动的另一个 duration_scalar

duration_scalar(duration_scalar const &other, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过深度复制另一个对象来构造一个新的持续时间标量对象。

Parameters:
  • other – 要复制的标量。

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

  • mr – 用于设备内存分配的设备内存资源。

duration_scalar(rep_type value, bool is_valid, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从刻度计数构造一个新的持续时间标量对象。

Parameters:
  • value – 表示自UNIX纪元以来的刻度数的整数。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

rep_type count(rmm::cuda_stream_view stream)#

返回以滴答数表示的持续时间。

Parameters:

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

Returns:

持续时间以滴答数为单位

class list_scalar : public cudf::scalar#
#include <scalar.hpp>

一个拥有类,用于表示设备内存中的列表值。

公共函数

list_scalar(list_scalar &&other) = default#

list_scalar 的移动构造函数。

Parameters:

other – 要从中移动的另一个 list_scalar

list_scalar(list_scalar const &other, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过深度复制另一个对象来构造一个新的列表标量对象。

Parameters:
  • other – 要复制的标量。

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

  • mr – 用于设备内存分配的设备内存资源。

list_scalar(cudf::column_view const &data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

column_view构造一个新的列表标量对象。

输入的 column_view 被复制。

Parameters:
  • data – 要复制的列数据。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

list_scalar(cudf::column &&data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从现有列构造一个新的列表标量对象。

Parameters:
  • data – 要获取所有权的列。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

column_view view() const#

返回一个非拥有、不可变的底层设备数据视图。

Returns:

一个非拥有、不可变的底层设备数据视图

class struct_scalar : public cudf::scalar#
#include <scalar.hpp>

一个拥有类,用于表示设备内存中的结构体值。

公共函数

struct_scalar(struct_scalar &&other) = default#

struct_scalar 的移动构造函数。

Parameters:

other – 要从中移动的另一个 struct_scalar

struct_scalar(struct_scalar const &other, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

通过深度复制另一个对象来构造一个新的结构体标量对象。

Parameters:
  • other – 要复制的标量。

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

  • mr – 用于设备内存分配的设备内存资源。

struct_scalar(table_view const &data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

table_view构造一个新的结构体标量对象。

输入的 table_view 被深拷贝。

Parameters:
  • data – 要复制的表格数据。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

struct_scalar(host_span<column_view const> data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

host_span的column_views构造一个新的结构标量对象。

输入的 column_views 是深拷贝的。

Parameters:
  • data – 要复制的列视图。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

struct_scalar(table &&data, bool is_valid = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

从设备内存中的现有表构造一个新的结构标量对象。

请注意,此构造函数将现有表数据移动到内部表数据中;不执行任何复制操作。

Parameters:
  • data – 要接管的现有表格数据。

  • is_valid – 标量所持有的值是否有效。

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

  • mr – 用于设备内存分配的设备内存资源。

table_view view() const#

返回一个非拥有、不可变的底层设备数据视图。

Returns:

一个非拥有、不可变的底层设备数据视图

目录: