文件 | 函数
提取

文件

文件  lists/extract.hpp
 

函数

std::unique_ptr< columncudf::lists::extract_list_element (lists_column_view const &lists_column, size_type index, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 创建一个新列,其中每一行是输入 lists_column 中对应子列表在位置 index 的元素。 更多...
 
std::unique_ptr< columncudf::lists::extract_list_element (lists_column_view const &lists_column, column_view const &indices, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 创建一个新列,其中每一行是输入 lists_column 中对应子列表的一个元素,该元素通过 indices 列中的索引选择。 更多...
 

详细描述

函数文档

◆ extract_list_element() [1/2]

std::unique_ptr<column> cudf::lists::extract_list_element ( lists_column_view const &  lists_column,
column_view const &  indices,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

创建一个新列,其中每一行是输入 lists_column 中对应子列表的一个元素,该元素通过 indices 列中的索引选择。

输出列 column[i] 设置为元素 lists_column[i][indices[i]]。如果 indices[i] 大于 lists_column[i] 中子列表的大小,则输出 column[i] = null。类似地,如果 indices[i]null,则 column[i] = null

l = { {1, 2, 3}, {4}, {5, 6} }
r = extract_list_element(l, {0, null, 2})
r 现在是 {1, null, null}

indices[i] 也可以是负数,在这种情况下,检索的行将从每个子列表的末尾开始偏移。

l = { {"a"}, {"b", "c"}, {"d", "e", "f"} }
r = extract_list_element(l, {-1, -2, -4})
r 现在是 {"a", "b", null}

任何 lists_column[i] == null 的输入都会导致输出 column[i] = null。任何 lists_column[i][indices[i]] == null 的输入也会导致输出 column[i] = null

参数
lists_column从中提取元素的列。
indices其行指示从每个列表行中检索的元素索引的列。
stream用于设备内存操作和内核启动的 CUDA 流。
mr用于分配返回列的设备内存的设备内存资源。
返回值
提取的元素列。
异常
cudf::logic_error如果 lists_columnindices 的大小不匹配。

◆ extract_list_element() [2/2]

std::unique_ptr<column> cudf::lists::extract_list_element ( lists_column_view const &  lists_column,
size_type  index,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

创建一个新列,其中每一行是输入 lists_column 中对应子列表在位置 index 的元素。

输出列 column[i] 设置为元素 lists_column[i][index]。如果 index 大于 lists_column[i] 中子列表的大小,则输出 column[i] = null

l = { {1, 2, 3}, {4}, {5, 6} }
r = extract_list_element(l, 1)
r 现在是 {2, null, 6}

index 也可以是负数,在这种情况下,检索的行将从每个子列表的末尾开始偏移。

l = { {"a"}, {"b", "c"}, {"d", "e", "f"} }
r = extract_list_element(l, -1)
r 现在是 {"a", "c", "f"}

任何 lists_column[i] == null 的输入都会导致输出 column[i] = null。此外,任何 lists_column[i][index] == null 的元素也会导致输出 column[i] = null

参数
lists_column从中提取元素的列。
index要从每个子列表中检索的行。
stream用于设备内存操作和内核启动的 CUDA 流。
mr用于分配返回列的设备内存的设备内存资源。
返回值
提取的元素列。