标量类#
- 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
公共函数
-
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:
指向设备内存中有效性布尔值的原始指针
-
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>
一个拥有类,用于表示设备内存中的数值。
- 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 数字的数据类型。
公共类型
公共函数
-
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#
显式转换操作符以获取主机上标量的值。
-
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
-
char const *data() const#
返回指向设备内存中字符串的原始指针。
- Returns:
指向设备内存中字符串的原始指针
-
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 查看允许类型的列表。
- 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 – 时间戳值的数据类型。
公共函数
-
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 – 持续时间值的数据类型。
公共函数
-
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:
一个非拥有、不可变的底层设备数据视图
-
list_scalar(list_scalar &&other) = default#
-
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:
一个非拥有、不可变的底层设备数据视图
-
struct_scalar(struct_scalar &&other) = default#
-
class scalar#
目录: