一个包含可空设备数据元素的容器,表示为列。 更多...
#include <column.hpp>
类 | |
struct | contents |
列内容的包装器。 更多... | |
公有成员函数 | |
column & | operator= (column const &other)=delete |
column & | operator= (column &&other)=delete |
column (column const &other, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) | |
通过深度复制 other 的内容来构造新的 column 对象。 更多... | |
column (column &&other) noexcept | |
移动 other 的内容来创建新的 column。 更多... | |
template<typename T , CUDF_ENABLE_IF(cudf::is_numeric< T >() or cudf::is_chrono< T >()) > | |
column (rmm::device_uvector< T > &&other, rmm::device_buffer &&null_mask, size_type null_count) | |
通过获取 device_uvector 内容的所有权来构造新的 column。 更多... | |
template<typename B1 , typename B2 = rmm::device_buffer> | |
column (data_type dtype, size_type size, B1 &&data, B2 &&null_mask, size_type null_count, std::vector< std::unique_ptr< column >> &&children={}) | |
从现有的设备内存构造新的 column。 更多... | |
column (column_view view, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) | |
通过深度复制 column_view 的内容来构造新的 column。 更多... | |
data_type | type () const noexcept |
返回列的逻辑元素类型。 更多... | |
size_type | size () const noexcept |
返回元素数量。 更多... | |
size_type | null_count () const |
返回空元素数量。 更多... | |
void | set_null_mask (rmm::device_buffer &&new_null_mask, size_type new_null_count) |
将列的空值指示位掩码设置为 new_null_mask 。 更多... | |
void | set_null_mask (rmm::device_buffer const &new_null_mask, size_type new_null_count, rmm::cuda_stream_view stream=cudf::get_default_stream()) |
将列的空值指示位掩码设置为 new_null_mask 。 更多... | |
void | set_null_count (size_type new_null_count) |
更新空元素数量。 更多... | |
bool | nullable () const noexcept |
指示列是否可能包含空值,即它是否分配了空掩码。 更多... | |
bool | has_nulls () const noexcept |
指示列是否包含空元素。 更多... | |
size_type | size_type |
num_children () const noexcept | |
返回子列数量。 更多... | column & |
child (size_type child_index) noexcept | |
返回指定子列的引用。 更多... | column const & |
child (size_type child_index) const noexcept | |
返回指定子列的 const 引用。 更多... | contents |
release () noexcept | |
释放列内容的所有权。 更多... | column_view |
view () const | |
创建列数据和子列的不可变、非拥有的视图。 更多... | |
operator column_view () const | |
隐式转换为 column_view 的运算符。 更多... | mutable_column_view () |
mutable_view | |
创建列数据、空掩码和子列的可变、非拥有的视图。 更多... () | |
operator mutable_column_view | |
mutable_column_view
的运算符。 更多...详细描述
一个包含可空设备数据元素的容器,表示为列。
◆ column() [1/5] | ( | 返回指定子列的引用。 更多... | cudf::column::column, |
other | rmm::cuda_stream_view | ||
stream = cudf::get_default_stream() , |
rmm::device_async_resource_ref | ||
) |
mr = cudf::get_current_device_resource_ref()
通过深度复制 other
的内容来构造新的 column 对象。
stream
和 device_memory_resource 进行所有分配和复制。cudf::column::column | 参数 |
要复制的 column | stream |
用于设备内存操作的 CUDA 流。 | mr |
noexcept
移动 other
的内容来创建新的 column。
stream
和 device_memory_resource 进行所有分配和复制。cudf::column::column | 移动后,other.size() == 0 且 other.type() = {EMPTY} |
|
null_count |
inline
stream
和 device_memory_resource 进行所有分配和复制。cudf::column::column | 通过获取 device_uvector 内容的所有权来构造新的 column。 |
rmm::device_buffer && | 其内容将移入新 column 的 device_uvector。 |
列的空值指示位掩码。如果 null_count 为 0,可以为空。 | null_count |
空元素数量。
|
null_count |
children = {}
异常 | cudf::logic_error |
stream
和 device_memory_resource 进行所有分配和复制。◆ column() [4/5] | 如果 size < 0 |
dtype | 元素类型 |
B1 && | 列中的元素数量 |
rmm::device_buffer && | 其内容将移入新 column 的 device_uvector。 |
列的空值指示位掩码。如果 null_count 为 0,可以为空。 | 列的数据 |
可选,空元素数量。 | children |
可选,子列向量
|
view |
explicit
通过深度复制 column_view
的内容来构造新的 column。
stream
和 device_memory_resource 进行所有分配和复制。◆ column() [5/5] | 这考虑了 column_view 的偏移量。 |
要复制的 column | stream |
用于设备内存操作的 CUDA 流。 | mr |
inlinenoexcept
stream
和 device_memory_resource 进行所有分配和复制。column const& cudf::column::child | 返回指定子列的 const 引用。 |
所需子列的 const 引用
column& cudf::column::child
stream
和 device_memory_resource 进行所有分配和复制。column const& cudf::column::child | 返回指定子列的 const 引用。 |
所需子列的引用
|
const |
bool cudf::column::has_nulls
false 零空元素
◆ mutable_view() | ( | ) |
mutable_column_view cudf::column::mutable_view
|
const |
bool cudf::column::nullable
指示列是否可能包含空值,即它是否分配了空掩码。
当且仅当 null_count() == 0
时,这可能返回 false
。
null_count() == 0
,也可能返回 true。此函数仅指示列是否分配了空掩码。false 列不能包含空值
|
null_count |
cudf::column::operator column_view
隐式转换为 column_view
的运算符。
column
对象直接传递给需要 column_view
的函数。转换是自动的。不可变、非拥有的 column_view
|
null_count |
cudf::column::operator mutable_column_view
隐式转换为 mutable_column_view
的运算符。
这允许将 column
对象传递给接受 mutable_column_view
的函数。转换是自动的。
可变、非拥有的 mutable_column_view
contents cudf::column::release
释放列内容的所有权。
调用 release()
之前查询 size(), null_count(), type()
是调用者的责任。
对 column 调用 release()
后,它将为空,即:
type() == data_type{EMPTY} == 0
size() == 0
null_count() == 0
contents
结构体。new_null_count
异常 | 更新空元素数量。 |
stream
和 device_memory_resource 进行所有分配和复制。void cudf::column::set_null_count | 如果 new_null_count > 0 且 nullable() == false |
◆ set_null_mask() [1/2] | ( | rmm::device_uvector< T > && | void cudf::column::set_null_mask, |
size_type | new_null_mask | ||
) |
new_null_count
异常 | 将列的空值指示位掩码设置为 new_null_mask 。 |
stream
和 device_memory_resource 进行所有分配和复制。void cudf::column::set_null_mask | 如果 new_null_count 大于 0 且 new_null_mask 的大小与此 column 的大小不匹配。 |
void cudf::column::set_null_count | null_count |
new_null_count
为 0,可以为空。◆ set_null_mask() [1/2] | ( | ◆ set_null_mask() [2/2] | void cudf::column::set_null_mask, |
size_type | void cudf::column::set_null_count, | ||
other | rmm::device_buffer const & | ||
) |
new_null_count
异常 | 将列的空值指示位掩码设置为 new_null_mask 。 |
stream
和 device_memory_resource 进行所有分配和复制。void cudf::column::set_null_mask | stream = cudf::get_default_stream() |
void cudf::column::set_null_count | 新的空值指示位掩码(左值重载并复制)用于设置列的空值指示掩码。如果 new_null_count 为 0,可以为空。 |
要复制的 column | 空元素数量 |
◆ view() | ( | ) | child_index |
column_view cudf::column::view