列表组合#

组合

枚举

enum class concatenate_null_policy#

标志,用于指定是否应在连接中忽略空列表元素,或者包含空列表元素的整个连接结果是否应为 null 元素。

enumerator IGNORE#
enumerator NULLIFY_OUTPUT_ROW#

函数

std::unique_ptr<column> concatenate_rows(table_view const &input, concatenate_null_policy null_policy = concatenate_null_policy::IGNORE, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

按行将多个列表列连接成一个列表列。

通过连接输入表中每行内的元素来生成输出列。如果输入表的任何行包含空元素,连接过程将要么忽略这些空元素,要么简单地将整个结果行设置为 null 元素。

s1 = [{0, 1}, {2, 3, 4}, {5}, {}, {6, 7}]
s2 = [{8}, {9}, {}, {10, 11, 12}, {13, 14, 15, 16}]
r = lists::concatenate_rows(s1, s2)
r is now [{0, 1, 8}, {2, 3, 4, 9}, {5}, {10, 11, 12}, {6, 7, 13, 14, 15, 16}]
抛出:
参数:
  • input – 要连接的列表表。

  • null_policy – 参数,用于指定是否在连接中忽略空列表元素,或者任何涉及空元素的连接是否会产生空列表。

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

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

返回:

一个新列,其中每一行都是连接输入表中相应行的所有列表元素后产生的列表。

std::unique_ptr<column> concatenate_list_elements(column_view const &input, concatenate_null_policy null_policy = concatenate_null_policy::IGNORE, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将列表列同一行中的多个列表连接成一个列表。

给定一个列表列,其中该列的每一行都是一个由条目列表组成的列表,通过将同一行的所有列表元素连接在一起生成一个输出列表列。如果任何行包含空列表元素,连接过程将要么忽略这些空元素,要么简单地将整个结果行设置为 null 元素。

l = [ [{1, 2}, {3, 4}, {5}], [{6}, {}, {7, 8, 9}] ]
r = lists::concatenate_list_elements(l);
r is [ {1, 2, 3, 4, 5}, {6, 7, 8, 9} ]
抛出:

std::invalid_argument – 如果输入列不是至少两层深度的列表列(即,每一行都必须是一个由列表组成的列表)。

参数:
  • input – 包含要连接的列表元素的列表的列表列。

  • null_policy – 参数,用于指定是否在连接中忽略空列表元素,或者任何涉及空元素的连接是否会产生空列表。

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

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

返回:

一个新列,其中每一行都是连接输入列表列相应行的所有列表元素后产生的列表。