集合操作#

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 }

抛出:
参数:
  • 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())#

创建包含两个输入列表列共有且不重复元素的列表列。

给定两个输入列表列 lhsrhs,创建输出列表列,使其每一行 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} }

抛出:
参数:
  • 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())#

创建包含两个输入列表列中任意一个找到的且不重复元素的列表列。

给定两个输入列表列 lhsrhs,创建输出列表列,使其每一行 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} }

抛出:
参数:
  • 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())#

创建包含仅在左侧输入列中找到的且不重复元素的列表列。

给定两个输入列表列 lhsrhs,创建输出列表列,使其每一行 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} }

抛出:
参数:
  • lhs – 可能被包含的元素的输入列表列

  • rhs – 要排除的元素的输入列表列

  • nulls_equal – 用于指定是否将空值元素视为相等的标志

  • nans_equal – 用于指定是否将浮点 NaN 视为相等的标志

  • stream – 用于设备内存操作和内核启动的 CUDA 流

  • mr – 用于分配返回对象的设备内存资源

返回:

包含差集结果的列表列