在创建时构建哈希表并在后续的 *_join
成员函数中探测结果的哈希连接。更多...
#include <join.hpp>
公共类型 | |
using | impl_type = typename cudf::detail::hash_join< cudf::hashing::detail::MurmurHash3_x86_32< cudf::hash_value_type > > |
实现类型。 | |
在创建时构建哈希表并在后续的 *_join
成员函数中探测结果的哈希连接。
此类实现了哈希连接方案,该方案构建哈希表一次,并根据需要多次(可能并行)探测。
cudf::hash_join::hash_join | ( | cudf::table_view const & | build, |
null_equality | compare_nulls, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() |
||
) |
构造一个哈希连接对象,用于后续的探测调用。
hash_join
对象不能比 build
查看的表更长寿,否则行为未定义。build | 构建表,从中构建哈希表 |
compare_nulls | 控制 null 连接键值是否应匹配 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
cudf::hash_join::hash_join | ( | cudf::table_view const & | build, |
nullable_join | has_nulls, | ||
null_equality | compare_nulls, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() |
||
) |
构造一个哈希连接对象,用于后续的探测调用。
hash_join
对象不能比 build
查看的表更长寿,否则行为未定义。build | 构建表,从中构建哈希表 |
compare_nulls | 控制 null 连接键值是否应匹配 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
has_nulls | 标志,指示 build 表或后续将用于连接的任何 probe 表中是否存在任何 null 值 |
std::pair<std::unique_ptr<rmm::device_uvector<size_type> >, std::unique_ptr<rmm::device_uvector<size_type> > > cudf::hash_join::full_join | ( | cudf::table_view const & | probe, |
std::optional< std::size_t > | output_size = {} , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) | const |
返回可用于构造两个表之间执行全连接结果的行索引。
output_size
小于实际输出大小,则行为未定义。probe | 探测表,从中探测元组 |
output_size | 可选值,允许用户指定确切的输出大小 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
mr | 用于分配返回的表和列的设备内存的设备内存资源。 |
cudf::logic_error | 如果输入探测表包含 null 值,而此 hash_join 对象未在构建时检查 null。 |
build
和 probe
作为连接键的两个表之间执行全连接的结果。std::size_t cudf::hash_join::full_join_size | ( | cudf::table_view const & | probe, |
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) | const |
返回使用指定探测表执行全连接时的确切匹配数(行数)。
probe | 探测表,从中探测元组 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
mr | 用于分配中间表和列的设备内存的设备内存资源。 |
cudf::logic_error | 如果输入探测表包含 null 值,而此 hash_join 对象未在构建时检查 null。 |
build
和 probe
作为连接键的两个表之间执行全连接时的确切输出数。std::pair<std::unique_ptr<rmm::device_uvector<size_type> >, std::unique_ptr<rmm::device_uvector<size_type> > > cudf::hash_join::inner_join | ( | cudf::table_view const & | probe, |
std::optional< std::size_t > | output_size = {} , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) | const |
返回可用于构造两个表之间执行内连接结果的行索引。
output_size
小于实际输出大小,则行为未定义。probe | 探测表,从中探测元组 |
output_size | 可选值,允许用户指定确切的输出大小 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
mr | 用于分配返回的表和列的设备内存的设备内存资源。 |
cudf::logic_error | 如果输入探测表包含 null 值,而此 hash_join 对象未在构建时检查 null。 |
build
和 probe
作为连接键的两个表之间执行内连接的结果。std::size_t cudf::hash_join::inner_join_size | ( | cudf::table_view const & | probe, |
rmm::cuda_stream_view | stream = cudf::get_default_stream() |
||
) | const |
返回使用指定探测表执行内连接时的确切匹配数(行数)。
probe | 探测表,从中探测元组 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
cudf::logic_error | 如果输入探测表包含 null 值,而此 hash_join 对象未在构建时检查 null。 |
build
和 probe
作为连接键的两个表之间执行内连接时的确切输出数。std::pair<std::unique_ptr<rmm::device_uvector<size_type> >, std::unique_ptr<rmm::device_uvector<size_type> > > cudf::hash_join::left_join | ( | cudf::table_view const & | probe, |
std::optional< std::size_t > | output_size = {} , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) | const |
返回可用于构造两个表之间执行左连接结果的行索引。
output_size
小于实际输出大小,则行为未定义。probe | 探测表,从中探测元组 |
output_size | 可选值,允许用户指定确切的输出大小 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
mr | 用于分配返回的表和列的设备内存的设备内存资源。 |
cudf::logic_error | 如果输入探测表包含 null 值,而此 hash_join 对象未在构建时检查 null。 |
build
和 probe
作为连接键的两个表之间执行左连接的结果。std::size_t cudf::hash_join::left_join_size | ( | cudf::table_view const & | probe, |
rmm::cuda_stream_view | stream = cudf::get_default_stream() |
||
) | const |
返回使用指定探测表执行左连接时的确切匹配数(行数)。
probe | 探测表,从中探测元组 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
cudf::logic_error | 如果输入探测表包含 null 值,而此 hash_join 对象未在构建时检查 null。 |
build
和 probe
作为连接键的两个表之间执行左连接时的确切输出数。