stream_compaction.hpp
前往此文件的文档。
1 /*
2  * Copyright (c) 2019-2024, NVIDIA CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * https://apache.ac.cn/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
19 #include <cudf/types.hpp>
21 #include <cudf/utilities/export.hpp>
23 
24 #include <memory>
25 #include <vector>
26 
27 namespace CUDF_EXPORT cudf {
73 std::unique_ptr<table> drop_nulls(
74  table_view const& input,
75  std::vector<size_type> const& keys,
76  cudf::size_type keep_threshold,
79 
107 std::unique_ptr<table> drop_nulls(
108  table_view const& input,
109  std::vector<size_type> const& keys,
112 
151 std::unique_ptr<table> drop_nans(
152  table_view const& input,
153  std::vector<size_type> const& keys,
154  cudf::size_type keep_threshold,
157 
186 std::unique_ptr<table> drop_nans(
187  table_view const& input,
188  std::vector<size_type> const& keys,
191 
214 std::unique_ptr<table> apply_boolean_mask(
215  table_view const& input,
216  column_view const& boolean_mask,
219 
224  KEEP_ANY = 0,
225  KEEP_FIRST,
226  KEEP_LAST,
227  KEEP_NONE
228 };
229 
258 std::unique_ptr<table> unique(
259  table_view const& input,
260  std::vector<size_type> const& keys,
262  null_equality nulls_equal = null_equality::EQUAL,
265 
286 std::unique_ptr<table> distinct(
287  table_view const& input,
288  std::vector<size_type> const& keys,
289  duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY,
290  null_equality nulls_equal = null_equality::EQUAL,
291  nan_equality nans_equal = nan_equality::ALL_EQUAL,
294 
309 std::unique_ptr<column> distinct_indices(
310  table_view const& input,
311  duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY,
312  null_equality nulls_equal = null_equality::EQUAL,
313  nan_equality nans_equal = nan_equality::ALL_EQUAL,
316 
340 std::unique_ptr<table> stable_distinct(
341  table_view const& input,
342  std::vector<size_type> const& keys,
343  duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY,
344  null_equality nulls_equal = null_equality::EQUAL,
345  nan_equality nans_equal = nan_equality::ALL_EQUAL,
348 
366  null_policy null_handling,
367  nan_policy nan_handling,
369 
381  null_equality nulls_equal = null_equality::EQUAL,
383 
406  null_policy null_handling,
407  nan_policy nan_handling,
409 
421  null_equality nulls_equal = null_equality::EQUAL,
423 
425 } // namespace CUDF_EXPORT cudf
表示设备数据的非拥有、不可变视图,作为元素列,其中一些元素可能为空,如...
一组大小相同的 cudf::column_view。
rmm::cuda_stream_view const get_default_stream()
获取当前的默认流。
rmm::device_async_resource_ref get_current_device_resource_ref()
获取当前的设备内存资源引用。
cuda::mr::async_resource_ref< cuda::mr::device_accessible > device_async_resource_ref
std::unique_ptr< table > drop_nulls(table_view const &input, std::vector< size_type > const &keys, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
过滤表以移除空元素。
std::unique_ptr< column > distinct_indices(table_view const &input, duplicate_keep_option keep=duplicate_keep_option::KEEP_ANY, 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())
创建输入表中所有不同行的索引列。
std::unique_ptr< table > unique(table_view const &input, std::vector< size_type > const &keys, duplicate_keep_option keep, null_equality nulls_equal=null_equality::EQUAL, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
创建一个移除连续重复行的新表。
std::unique_ptr< table > drop_nans(table_view const &input, std::vector< size_type > const &keys, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
过滤表以移除 NaN。
duplicate_keep_option
drop_duplicates API 中用于保留重复行的选项。
std::unique_ptr< table > apply_boolean_mask(table_view const &input, column_view const &boolean_mask, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
使用布尔值的 boolean_mask 作为掩码过滤输入。
cudf::size_type distinct_count(table_view const &input, null_equality nulls_equal=null_equality::EQUAL, rmm::cuda_stream_view stream=cudf::get_default_stream())
计算表中的不同行数。
std::unique_ptr< table > stable_distinct(table_view const &input, std::vector< size_type > const &keys, duplicate_keep_option keep=duplicate_keep_option::KEEP_ANY, 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())
创建一个没有重复行的新表,保留输入顺序。
std::unique_ptr< table > distinct(table_view const &input, std::vector< size_type > const &keys, duplicate_keep_option keep=duplicate_keep_option::KEEP_ANY, 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())
创建一个没有重复行的新表。
cudf::size_type unique_count(table_view const &input, null_equality nulls_equal=null_equality::EQUAL, rmm::cuda_stream_view stream=cudf::get_default_stream())
计算表中连续的等效行组的数量。
@ KEEP_ANY
保留任意出现。
@ KEEP_NONE
不保留(移除所有)重复项。
@ KEEP_LAST
保留最后一次出现。
@ KEEP_FIRST
保留第一次出现。
null_equality
枚举,用于判断两个空值是否相等。
定义: types.hpp:151
int32_t size_type
列和表的行索引类型。
定义: types.hpp:95
null_policy
枚举,用于指定是否包含空值或排除空值。
定义: types.hpp:126
nan_policy
枚举,用于将 NaN 浮点值视为 null 或非 null 元素。
定义: types.hpp:134
nan_equality
枚举,用于判断包含 NaN 值的不同元素(浮点类型)是否相等。
定义: types.hpp:143
cuDF 接口
定义: host_udf.hpp:37
libcudf 的类型声明。