标量类#
- group Scalar
-
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
公共函数
-
void set_valid_async(bool is_valid, rmm::cuda_stream_view stream = cudf::get_default_stream())#
更新值的有效性。
- 参数:
is_valid – true: 将值设置为有效。false: 将值设置为 null。
stream – 用于设备内存操作的 CUDA 流。
-
bool is_valid(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#
指示标量是否包含有效值。
注意
当
is_valid() == false
时使用该值是未定义行为。此外,此函数会进行流同步。- 参数:
stream – 用于设备内存操作的 CUDA 流。
- 返回:
true 值有效
- 返回:
false 值无效/null
-
bool *validity_data()#
返回设备内存中有效性布尔值的原始指针。
- 返回:
设备内存中有效性布尔值的原始指针
-
bool const *validity_data() const#
返回设备内存中有效性布尔值的 const 原始指针。
- 返回:
设备内存中有效性布尔值的原始指针
-
void set_valid_async(bool is_valid, rmm::cuda_stream_view stream = cudf::get_default_stream())#
-
template<typename T>
class numeric_scalar : public cudf::detail::fixed_width_scalar<T># - #include <scalar.hpp>
一个表示设备内存中数值的拥有类。
- 模板参数:
T – 数值的原始数据类型。
公共函数
-
numeric_scalar(numeric_scalar &&other) = default#
numeric_scalar 的移动构造函数。
- 参数:
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())#
通过深度复制另一个对象来构造新的数值标量对象。
- 参数:
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())#
构造新的数值标量对象。
- 参数:
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())#
从现有设备内存构造新的数值标量对象。
- 参数:
data – 标量在设备内存中的数据。
is_valid – 标量持有的值是否有效。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
template<typename T>
class fixed_point_scalar : public cudf::scalar# - #include <scalar.hpp>
一个表示设备内存中定点数的拥有类。
- 模板参数:
T – 定点数的原始数据类型。
公共函数
-
fixed_point_scalar(fixed_point_scalar &&other) = default#
fixed_point_scalar 的移动构造函数。
- 参数:
other – 要从中移动的另一个 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())#
通过深度复制另一个对象来构造新的定点标量对象。
- 参数:
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())#
从已偏移的值和比例构造新的定点标量对象。
- 参数:
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 比例构造新的定点标量对象。
- 参数:
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())#
从一个定点数构造新的定点标量对象。
- 参数:
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())#
从现有设备内存构造新的定点标量对象。
- 参数:
data – 标量在设备内存中的数据。
scale – 定点标量的比例。
is_valid – 标量持有的值是否有效。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
rep_type value(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#
获取标量的值。
- 参数:
stream – 用于设备内存操作的 CUDA 流。
- 返回:
标量的值
-
T fixed_point_value(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#
获取 decimal32, decimal64 或 decimal128。
- 参数:
stream – 用于设备内存操作的 CUDA 流。
- 返回:
decimal32, decimal64 或 decimal128 的值
-
class string_scalar : public cudf::scalar#
- #include <scalar.hpp>
一个表示设备内存中字符串的拥有类。
公共类型
-
using value_type = cudf::string_view#
字符串标量的值类型。
公共函数
-
string_scalar(string_scalar &&other) = default#
string_scalar 的移动构造函数。
- 参数:
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 对象来构造新的字符串标量对象。
- 参数:
other – 要复制的另一个 string_scalar。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
string_scalar(std::string_view 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())#
构造新的字符串标量对象。
- 抛出:
std::overflow_error – 如果输入字符串的大小超过 cudf::size_type
- 参数:
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 指向的数据。
- 参数:
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 指向的数据。
- 参数:
data – 指向要复制的字符串值的 string_view 的 device_scalar。
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())#
通过移动现有字符串数据缓冲区来构造新的字符串标量对象。
注意,此构造函数会将现有缓冲区移动到内部数据缓冲区;不执行复制操作。
- 参数:
data – 要接管的现有缓冲区。
is_valid – 标量持有的值是否有效。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
std::string to_string(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#
获取标量在主机 std::string 中的值。
- 参数:
stream – 用于设备内存操作的 CUDA 流。
- 返回:
标量在主机 std::string 中的值
-
value_type value(rmm::cuda_stream_view stream = cudf::get_default_stream()) const#
将标量的值获取为 string_view。
- 参数:
stream – 用于设备内存操作的 CUDA 流。
- 返回:
标量作为 string_view 的值
-
char const *data() const#
返回设备内存中字符串的原始指针。
- 返回:
设备内存中字符串的原始指针
-
using value_type = cudf::string_view#
-
template<typename T>
class chrono_scalar : public cudf::detail::fixed_width_scalar<T># - #include <scalar.hpp>
一个表示设备内存中时间戳/持续时间值的拥有类。
另请参阅
cudf/wrappers/timestamps.hpp, cudf/wrappers/durations.hpp 查看允许的类型列表。
- 模板参数:
T – 时间戳/持续时间值的原始数据类型。
由以下类派生:cudf::duration_scalar< T >, cudf::timestamp_scalar< T >
公共函数
-
chrono_scalar(chrono_scalar &&other) = default#
chrono_scalar 的移动构造函数。
- 参数:
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())#
通过深度复制另一个对象来构造新的 chrono 标量对象。
- 参数:
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())#
构造一个新的 chrono scalar 对象。
- 参数:
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())#
从现有的设备内存构造一个新的 chrono scalar 对象。
- 参数:
data – 标量在设备内存中的数据。
is_valid – 标量持有的值是否有效。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
template<typename T>
class timestamp_scalar : public cudf::chrono_scalar<T># - #include <scalar.hpp>
一个拥有设备内存中时间戳值的类。
另请参阅
查看 cudf/wrappers/timestamps.hpp 允许的类型列表。
- 模板参数:
T – 时间戳值的数据类型。
公共函数
-
timestamp_scalar(timestamp_scalar &&other) = default#
timestamp_scalar 的移动构造函数。
- 参数:
other – 用于移动的另一个 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())#
通过深度复制另一个 timestamp scalar 对象来构造。
- 参数:
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 的持续时间构造新的 timestamp scalar 对象。
- 参数:
value – 表示自 UNIX 纪元以来时间单位数的持续时间,或可转换为时间戳持续时间的另一个持续时间。
is_valid – 标量持有的值是否有效。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
rep_type ticks_since_epoch(rmm::cuda_stream_view stream)#
返回自 UNIX 纪元以来时间单位数表示的持续时间。
- 参数:
stream – 用于设备内存操作的 CUDA 流。
- 返回:
自 UNIX 纪元以来时间单位数表示的持续时间
-
template<typename T>
class duration_scalar : public cudf::chrono_scalar<T># - #include <scalar.hpp>
一个拥有设备内存中持续时间值的类。
另请参阅
查看 cudf/wrappers/durations.hpp 允许的类型列表。
- 模板参数:
T – 持续时间值的数据类型。
公共函数
-
duration_scalar(duration_scalar &&other) = default#
duration_scalar 的移动构造函数。
- 参数:
other – 用于移动的另一个 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())#
通过深度复制另一个 duration scalar 对象来构造。
- 参数:
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())#
从时间单位计数构造新的 duration scalar 对象。
- 参数:
value – 表示自 UNIX 纪元以来时间单位数的整数。
is_valid – 标量持有的值是否有效。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
rep_type count(rmm::cuda_stream_view stream)#
返回时间单位数表示的持续时间。
- 参数:
stream – 用于设备内存操作的 CUDA 流。
- 返回:
时间单位数表示的持续时间
-
class list_scalar : public cudf::scalar#
- #include <scalar.hpp>
一个拥有设备内存中列表值的类。
公共函数
-
list_scalar(list_scalar &&other) = default#
list_scalar 的移动构造函数。
- 参数:
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())#
通过深度复制另一个 list scalar 对象来构造。
- 参数:
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 构造新的 list scalar 对象。
输入的 column_view 被复制。
- 参数:
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())#
从现有的 column 构造新的 list scalar 对象。
- 参数:
data – 要接管所有权的列。
is_valid – 标量持有的值是否有效。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
column_view view() const#
返回底层设备数据的非拥有、不可变视图。
- 返回:
底层设备数据的非拥有、不可变视图
-
list_scalar(list_scalar &&other) = default#
-
class struct_scalar : public cudf::scalar#
- #include <scalar.hpp>
一个拥有设备内存中结构体值的类。
公共函数
-
struct_scalar(struct_scalar &&other) = default#
struct_scalar 的移动构造函数。
- 参数:
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())#
通过深度复制另一个 struct scalar 对象来构造。
- 参数:
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 构造新的 struct scalar 对象。
输入的 table_view 被深度复制。
- 参数:
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())#
从 column_views 的 host_span 构造新的 struct scalar 对象。
输入的 column_views 被深度复制。
- 参数:
data – 要复制的 column_views。
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())#
从现有的设备内存中的表构造新的 struct scalar 对象。
注意,此构造函数会将现有表数据移动到内部表数据中;不执行复制。
- 参数:
data – 要接管的现有表数据。
is_valid – 标量持有的值是否有效。
stream – 用于设备内存操作的 CUDA 流。
mr – 用于设备内存分配的设备内存资源。
-
table_view view() const#
返回底层设备数据的非拥有、不可变视图。
- 返回:
底层设备数据的非拥有、不可变视图
-
struct_scalar(struct_scalar &&other) = default#
-
class scalar#