集合操作#
- group 集合操作
函数
-
std::unique_ptr<column> have_overlap(lists_column_view const &lhs, lists_column_view const &rhs, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
检查给定列表列的每一行中的列表是否重叠。
给定两个输入列表列,检查其中一列中的每个列表行是否与另一列中的相应行有共同元素。
任意输入列表列中的空值输入行将导致空值输出行。
示例
lhs = { {0, 1, 2}, {1, 2, 3}, null, {4, null, 5} } rhs = { {1, 2, 3}, {4, 5}, {null, 7, 8}, {null, null} } result = { true, false, null, true }
- 抛出:
cudf::logic_error – 如果输入列表列的大小不同。
cudf::logic_error – 如果输入列表列的子列具有不同的数据类型。
- 参数:
lhs – 作为一侧的输入列表列
rhs – 作为另一侧的输入列表列
nulls_equal – 用于指定是否将空值元素视为相等的标志,默认为
UNEQUAL
,表示仅检查非空值元素的重叠情况nans_equal – 用于指定是否将浮点 NaN 视为相等的标志
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回对象的设备内存资源
- 返回:
包含检查结果的 BOOL 类型列
-
std::unique_ptr<column> intersect_distinct(lists_column_view const &lhs, lists_column_view const &rhs, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建包含两个输入列表列共有且不重复元素的列表列。
给定两个输入列表列
lhs
和rhs
,创建输出列表列,使其每一行i
包含一个在lhs[i]
和rhs[i]
中均能找到的不重复元素列表。输出行中不重复元素的顺序未指定。
任意输入列表列中的空值输入行将导致空值输出行。
示例
lhs = { {2, 1, 2}, {1, 2, 3}, null, {4, null, 5} } rhs = { {1, 2, 3}, {4, 5}, {null, 7, 8}, {null, null} } result = { {1, 2}, {}, null, {null} }
- 抛出:
cudf::logic_error – 如果输入列表列的大小不同。
cudf::logic_error – 如果输入列表列的子列具有不同的数据类型。
- 参数:
lhs – 作为一侧的输入列表列
rhs – 作为另一侧的输入列表列
nulls_equal – 用于指定是否将空值元素视为相等的标志
nans_equal – 用于指定是否将浮点 NaN 视为相等的标志
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回对象的设备内存资源
- 返回:
包含交集结果的列表列
-
std::unique_ptr<column> union_distinct(lists_column_view const &lhs, lists_column_view const &rhs, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建包含两个输入列表列中任意一个找到的且不重复元素的列表列。
给定两个输入列表列
lhs
和rhs
,创建输出列表列,使其每一行i
包含一个在lhs[i]
或rhs[i]
中均能找到的不重复元素列表。输出行中不重复元素的顺序未指定。
任意输入列表列中的空值输入行将导致空值输出行。
示例
lhs = { {2, 1, 2}, {1, 2, 3}, null, {4, null, 5} } rhs = { {1, 2, 3}, {4, 5}, {null, 7, 8}, {null, null} } result = { {1, 2, 3}, {1, 2, 3, 4, 5}, null, {4, null, 5} }
- 抛出:
cudf::logic_error – 如果输入列表列的大小不同。
cudf::logic_error – 如果输入列表列的子列具有不同的数据类型。
- 参数:
lhs – 作为一侧的输入列表列
rhs – 作为另一侧的输入列表列
nulls_equal – 用于指定是否将空值元素视为相等的标志
nans_equal – 用于指定是否将浮点 NaN 视为相等的标志
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回对象的设备内存资源
- 返回:
包含并集结果的列表列
-
std::unique_ptr<column> difference_distinct(lists_column_view const &lhs, lists_column_view const &rhs, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建包含仅在左侧输入列中找到的且不重复元素的列表列。
给定两个输入列表列
lhs
和rhs
,创建输出列表列,使其每一行i
包含一个在lhs[i]
中能找到但在rhs[i]
中找不到的不重复元素列表。输出行中不重复元素的顺序未指定。
任意输入列表列中的空值输入行将导致空值输出行。
示例
lhs = { {2, 1, 2}, {1, 2, 3}, null, {4, null, 5} } rhs = { {1, 2, 3}, {4, 5}, {null, 7, 8}, {null, null} } result = { {}, {1, 2, 3}, null, {4, 5} }
- 抛出:
cudf::logic_error – 如果输入列表列的大小不同。
cudf::logic_error – 如果输入列表列的子列具有不同的数据类型。
- 参数:
lhs – 可能被包含的元素的输入列表列
rhs – 要排除的元素的输入列表列
nulls_equal – 用于指定是否将空值元素视为相等的标志
nans_equal – 用于指定是否将浮点 NaN 视为相等的标志
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回对象的设备内存资源
- 返回:
包含差集结果的列表列
-
std::unique_ptr<column> have_overlap(lists_column_view const &lhs, lists_column_view const &rhs, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#