9 #include <cudf/io/detail/parquet.hpp>
13 #include <cudf/utilities/export.hpp>
27 namespace CUDF_EXPORT
cudf {
35 std::numeric_limits<size_t>::max();
76 std::optional<std::vector<std::string>> _column_names;
78 std::optional<std::vector<cudf::size_type>> _column_indices;
80 std::optional<std::vector<int32_t>> _column_field_ids;
83 std::vector<std::vector<size_type>> _row_groups;
85 int64_t _skip_rows = 0;
87 std::optional<int64_t> _num_rows;
90 size_t _skip_bytes = 0;
92 std::optional<size_t> _num_bytes;
95 std::optional<std::reference_wrapper<ast::expression const>> _filter;
98 bool _convert_strings_to_categories =
false;
100 bool _use_pandas_metadata =
true;
102 bool _use_arrow_schema =
true;
104 bool _allow_mismatched_pq_schemas =
false;
106 bool _ignore_missing_columns =
true;
108 data_type _timestamp_type{type_id::EMPTY};
110 type_id _decimal_width{type_id::EMPTY};
112 bool _use_jit_filter =
false;
115 bool _case_sensitive_names =
true;
117 bool _prepend_source_index_column =
false;
119 bool _prepend_row_index_column =
false;
121 std::optional<std::vector<reader_column_schema>> _reader_column_schema;
164 return _convert_strings_to_categories;
190 return _allow_mismatched_pq_schemas;
209 return _reader_column_schema;
225 [[nodiscard]] std::optional<int64_t>
const&
get_num_rows()
const {
return _num_rows; }
241 [[nodiscard]] std::optional<size_t>
const&
get_num_bytes()
const {
return _num_bytes; }
248 [[nodiscard]] [[deprecated(
"Use `get_column_names` instead.")]]
auto const&
get_columns()
const
250 return _column_names;
286 [[nodiscard]]
auto const&
get_filter()
const {
return _filter; }
326 return _prepend_source_index_column;
340 return _prepend_row_index_column;
372 [[deprecated(
"Use `set_column_names` instead.")]]
void set_columns(
373 std::vector<std::string> column_names)
375 set_column_names(std::move(column_names));
401 "Cannot select columns by names and indices simultaneously");
403 "Cannot select columns by names and field IDs simultaneously");
404 _column_names = std::move(column_names);
421 "Cannot select columns by indices and names simultaneously");
423 "Cannot select columns by indices and field IDs simultaneously");
425 not _allow_mismatched_pq_schemas,
426 "Cannot select columns by indices and allow mismatched Parquet schemas simultaneously");
427 _column_indices = std::move(col_indices);
439 "Cannot select columns by field IDs and names simultaneously");
441 "Cannot select columns by field IDs and indices simultaneously");
442 _column_field_ids = std::move(column_field_ids);
536 not val or not _column_indices.has_value(),
537 "Cannot enable reading mismatched Parquet schemas when selecting columns by index");
538 _allow_mismatched_pq_schemas = val;
557 _reader_column_schema = std::move(val);
669 std::vector<std::string> column_names)
671 return this->column_names(std::move(column_names));
999 std::vector<std::unique_ptr<cudf::io::datasource>>&& sources,
1000 std::vector<parquet::FileMetaData>&& parquet_metadatas,
1038 std::size_t chunk_read_limit,
1060 std::size_t chunk_read_limit,
1061 std::vector<std::unique_ptr<cudf::io::datasource>>&& sources,
1062 std::vector<parquet::FileMetaData>&& parquet_metadatas,
1087 std::size_t chunk_read_limit,
1088 std::size_t pass_read_limit,
1116 std::size_t chunk_read_limit,
1117 std::size_t pass_read_limit,
1118 std::vector<std::unique_ptr<cudf::io::datasource>>&& sources,
1119 std::vector<parquet::FileMetaData>&& parquet_metadatas,
1154 std::unique_ptr<cudf::io::parquet::detail::chunked_reader> reader;
1168 bool is_descending{
false};
1169 bool is_nulls_first{
true};
1183 std::optional<table_input_metadata> _metadata;
1185 std::vector<std::map<std::string, std::string>> _user_data;
1188 bool _write_timestamps_as_int96 =
false;
1191 bool _write_timestamps_as_UTC =
true;
1193 bool _write_arrow_schema =
false;
1209 std::optional<size_type> _max_page_fragment_size;
1211 std::shared_ptr<writer_compression_statistics> _compression_stats;
1213 bool _v2_page_headers =
false;
1215 bool _page_level_compression =
false;
1217 std::optional<std::vector<sorting_column>> _sorting_columns;
1318 return std::min(_max_page_size_bytes, get_row_group_size_bytes());
1330 return std::min(_max_page_size_rows, get_row_group_size_rows());
1340 return _column_index_truncate_length;
1371 return _compression_stats;
1540 template <
class BuilderT,
class OptionsT>
1702 std::shared_ptr<writer_compression_statistics>
const& comp_stats);
1759 operator OptionsT&&();
1780 std::vector<partition_info> _partitions;
1782 std::vector<std::string> _column_chunks_file_paths;
1831 [[nodiscard]] std::vector<partition_info>
const&
get_partitions()
const {
return _partitions; }
1840 return _column_chunks_file_paths;
1865 parquet_writer_options> {
1932 std::vector<std::unique_ptr<std::vector<uint8_t>>>
const& metadata_list);
1972 chunked_parquet_writer_options> {
2046 std::vector<partition_info>
const& partitions = {});
2057 std::unique_ptr<std::vector<uint8_t>>
close(
2058 std::vector<std::string>
const& column_chunks_file_path = {});
2061 std::unique_ptr<parquet::detail::writer>
writer;
Indicator for the logical data type of an element in a column.
The chunked parquet reader class to read Parquet file iteratively in to a series of tables,...
table_with_metadata read_chunk() const
Read a chunk of rows in the given Parquet file.
bool has_next() const
Check if there is any data in the given file has not yet read.
chunked_parquet_reader(std::size_t chunk_read_limit, std::vector< std::unique_ptr< cudf::io::datasource >> &&sources, std::vector< parquet::FileMetaData > &&parquet_metadatas, parquet_reader_options const &options, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Constructor for chunked reader using pre-existing Parquet datasources and file metadatas.
chunked_parquet_reader(std::size_t chunk_read_limit, std::size_t pass_read_limit, parquet_reader_options const &options, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Constructor for chunked reader.
chunked_parquet_reader(std::size_t chunk_read_limit, parquet_reader_options const &options, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Constructor for chunked reader.
chunked_parquet_reader(std::size_t chunk_read_limit, std::size_t pass_read_limit, std::vector< std::unique_ptr< cudf::io::datasource >> &&sources, std::vector< parquet::FileMetaData > &&parquet_metadatas, parquet_reader_options const &options, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Constructor for chunked reader using pre-existing Parquet datasources and file metadatas.
~chunked_parquet_reader()
Destructor, destroying the internal reader instance.
chunked_parquet_reader()
Default constructor, this should never be used.
Class to build chunked_parquet_writer_options.
chunked_parquet_writer_options_builder()=default
Default constructor.
chunked_parquet_writer_options_builder(sink_info const &sink)
Constructor from sink.
Settings for chunked_parquet_writer.
static chunked_parquet_writer_options_builder builder(sink_info const &sink)
creates builder to build chunked_parquet_writer_options.
chunked_parquet_writer_options()=default
Default constructor.
chunked parquet writer class to handle options and write tables in chunks.
~chunked_parquet_writer()
Default destructor. This is added to not leak detail API.
chunked_parquet_writer(chunked_parquet_writer_options const &options, rmm::cuda_stream_view stream=cudf::get_default_stream())
Constructor with chunked writer options.
std::unique_ptr< std::vector< uint8_t > > close(std::vector< std::string > const &column_chunks_file_path={})
Finishes the chunked/streamed write process.
std::unique_ptr< parquet::detail::writer > writer
Unique pointer to impl writer class.
chunked_parquet_writer & write(table_view const &table, std::vector< partition_info > const &partitions={})
Writes table to output.
chunked_parquet_writer()
Default constructor, this should never be used. This is added just to satisfy cython....
Builds parquet_reader_options to use for read_parquet().
parquet_reader_options_builder & prepend_source_index_column(bool val)
Sets whether to prepend a source file index column to the output.
parquet_reader_options_builder & num_bytes(size_t val)
Sets number of bytes after skipping to end reading row groups at.
parquet_reader_options_builder & use_arrow_schema(bool val)
Sets to enable/disable use of arrow schema to read.
parquet_reader_options_builder(source_info src)
Constructor from source info.
parquet_reader_options_builder & decimal_width(type_id width)
Sets the decimal width used to cast decimal columns.
parquet_reader_options_builder & use_jit_filter(bool val)
Sets whether to use JIT for filtering.
parquet_reader_options_builder & skip_rows(int64_t val)
Sets number of rows to skip.
parquet_reader_options_builder & column_field_ids(std::vector< int32_t > column_field_ids)
Sets the Parquet field IDs of columns/fields to be read from all input sources.
parquet_reader_options_builder & allow_mismatched_pq_schemas(bool val)
Sets to enable/disable reading of matching projected and filter columns from mismatched Parquet sourc...
parquet_reader_options_builder & column_names(std::vector< std::string > column_names)
Sets names of the columns to be read.
parquet_reader_options_builder & ignore_missing_columns(bool val)
Sets to enable/disable ignoring of non-existent projected columns while reading.
parquet_reader_options_builder & skip_bytes(size_t val)
Sets bytes to skip before starting reading row groups.
parquet_reader_options_builder & prepend_row_index_column(bool val)
Sets whether to prepend a file-local row index column to the output.
parquet_reader_options_builder & timestamp_type(data_type type)
timestamp_type used to cast timestamp columns.
parquet_reader_options_builder & use_pandas_metadata(bool val)
Sets to enable/disable use of pandas metadata to read.
parquet_reader_options_builder()=default
Default constructor.
parquet_reader_options_builder & num_rows(int64_t val)
Sets number of rows to read.
parquet_reader_options_builder & row_groups(std::vector< std::vector< size_type >> row_groups)
Specifies which row groups to read from each input source.
parquet_reader_options_builder & set_column_schema(std::vector< reader_column_schema > val)
Sets reader metadata.
parquet_reader_options_builder & columns(std::vector< std::string > column_names)
Sets names of the columns to be read.
parquet_reader_options_builder & column_indices(std::vector< cudf::size_type > col_indices)
Sets the indices of top-level columns to be read from all input sources.
parquet_reader_options && build()
move parquet_reader_options member once it's built.
parquet_reader_options_builder & filter(ast::expression const &filter)
Sets AST based filter for predicate pushdown.
parquet_reader_options_builder & case_sensitive_names(bool val)
Sets whether column name matching is case sensitive.
parquet_reader_options_builder & convert_strings_to_categories(bool val)
Sets enable/disable conversion of strings to categories.
Settings for read_parquet().
data_type get_timestamp_type() const
Returns timestamp type used to cast timestamp columns.
parquet_reader_options()=default
Default constructor.
void enable_allow_mismatched_pq_schemas(bool val)
Sets to enable/disable reading of matching projected and filter columns from mismatched Parquet sourc...
void set_skip_rows(int64_t val)
Sets number of rows to skip.
bool is_enabled_use_jit_filter() const
Returns whether to use JIT compilation for filtering.
size_t get_skip_bytes() const
Returns bytes to skip before starting reading row groups.
void enable_use_jit_filter(bool val)
Sets whether to use JIT for filtering.
auto const & get_column_field_ids() const
Returns Parquet field IDs of columns/fields to be read, if set.
bool is_enabled_ignore_missing_columns() const
Returns boolean depending on whether to ignore non-existent projected columns while reading.
static parquet_reader_options_builder builder(source_info src=source_info{})
Creates a parquet_reader_options_builder to build parquet_reader_options. By default,...
void enable_convert_strings_to_categories(bool val)
Sets to enable/disable conversion of strings to categories.
std::optional< std::vector< reader_column_schema > > get_column_schema() const
Returns optional tree of metadata.
void set_skip_bytes(size_t val)
Sets bytes to skip before starting reading row groups.
type_id get_decimal_width() const
Returns decimal width used to cast decimal columns.
void set_column_indices(std::vector< cudf::size_type > col_indices)
Sets the indices of top-level columns to be read from all input sources.
void set_column_field_ids(std::vector< int32_t > column_field_ids)
Sets the Parquet field IDs of columns/fields to be read from all input sources.
source_info const & get_source() const
Returns source info.
auto const & get_column_indices() const
Returns indices of top-level columns to be read, if set.
bool is_enabled_prepend_source_index_column() const
Returns whether to prepend a source file index column to the output.
auto const & get_row_groups() const
Returns list of individual row groups to be read.
void set_decimal_width(type_id width)
Sets decimal width used to cast decimal columns.
void set_row_groups(std::vector< std::vector< size_type >> row_groups)
Specifies which row groups to read from each input source.
void enable_ignore_missing_columns(bool val)
Sets to enable/disable ignoring of non-existent projected columns while reading.
void set_source(source_info src)
Set a new source location.
auto const & get_columns() const
Returns names of column to be read, if set.
void set_timestamp_type(data_type type)
Sets timestamp_type used to cast timestamp columns.
void set_column_names(std::vector< std::string > column_names)
Sets the names of columns to be read from all input sources.
std::optional< int64_t > const & get_num_rows() const
Returns number of rows to read.
bool is_enabled_convert_strings_to_categories() const
Returns boolean depending on whether strings should be converted to categories.
void set_columns(std::vector< std::string > column_names)
Sets the names of columns to be read from all input sources.
void set_num_rows(int64_t val)
Sets number of rows to read.
void enable_case_sensitive_names(bool val)
Sets whether column name matching is case sensitive.
void set_num_bytes(size_t val)
Sets number of bytes after skipping to end reading row groups at.
void enable_use_pandas_metadata(bool val)
Sets to enable/disable use of pandas metadata to read.
void enable_use_arrow_schema(bool val)
Sets to enable/disable use of arrow schema to read.
void enable_prepend_source_index_column(bool val)
Sets whether to prepend a source file index column to the output.
bool is_enabled_use_pandas_metadata() const
Returns boolean depending on whether to use pandas metadata while reading.
bool is_enabled_allow_mismatched_pq_schemas() const
Returns boolean depending on whether to read matching projected and filter columns from mismatched Pa...
void set_column_schema(std::vector< reader_column_schema > val)
Sets reader column schema.
bool is_enabled_prepend_row_index_column() const
Returns whether to prepend a file-local row index column to the output.
bool is_enabled_use_arrow_schema() const
Returns boolean depending on whether to use arrow schema while reading.
void set_filter(ast::expression const &filter)
Sets AST based filter for predicate pushdown.
auto const & get_filter() const
Returns AST based filter for predicate pushdown.
std::optional< size_t > const & get_num_bytes() const
Returns number of bytes after skipping to end reading row groups at.
auto const & get_column_names() const
Returns names of column to be read, if set.
void enable_prepend_row_index_column(bool val)
Sets whether to prepend a file-local row index column to the output.
int64_t get_skip_rows() const
Returns number of rows to skip from the start.
bool is_enabled_case_sensitive_names() const
Returns whether column name matching is case sensitive.
Base settings for write_parquet() and chunked_parquet_writer.
void enable_utc_timestamps(bool val)
Sets preference for writing timestamps as UTC. Write timestamps as UTC if set to true.
void enable_write_v2_headers(bool val)
Sets preference for V2 page headers. Write V2 page headers if set to true.
auto const & get_sorting_columns() const
Returns the sorting_columns.
auto get_row_group_size_bytes() const
Returns maximum row group size, in bytes.
bool is_enabled_int96_timestamps() const
Returns true if timestamps will be written as INT96.
void set_metadata(table_input_metadata metadata)
Sets metadata.
void set_row_group_size_rows(size_type size_rows)
Sets the maximum row group size, in rows.
parquet_writer_options_base(sink_info sink)
Constructor from sink.
void set_stats_level(statistics_freq sf)
Sets the level of statistics.
auto get_row_group_size_rows() const
Returns maximum row group size, in rows.
parquet_writer_options_base()=default
Default constructor.
void set_max_page_size_bytes(size_t size_bytes)
Sets the maximum uncompressed page size, in bytes.
void set_sorting_columns(std::vector< sorting_column > sorting_columns)
Sets sorting columns.
auto is_enabled_write_arrow_schema() const
Returns true if arrow schema will be written.
auto is_enabled_write_v2_headers() const
Returns true if V2 page headers should be written.
void set_dictionary_policy(dictionary_policy policy)
Sets the policy for dictionary use.
auto get_max_page_size_bytes() const
Returns the maximum uncompressed page size, in bytes.
void set_max_dictionary_size(size_t size_bytes)
Sets the maximum dictionary size, in bytes.
compression_type get_compression() const
Returns compression format used.
auto get_max_dictionary_size() const
Returns maximum dictionary size, in bytes.
void set_compression(compression_type compression)
Sets compression type.
dictionary_policy get_dictionary_policy() const
Returns policy for dictionary use.
void set_compression_statistics(std::shared_ptr< writer_compression_statistics > comp_stats)
Sets the pointer to the output compression statistics.
std::shared_ptr< writer_compression_statistics > get_compression_statistics() const
Returns a shared pointer to the user-provided compression statistics.
void set_max_page_size_rows(size_type size_rows)
Sets the maximum page size, in rows.
void enable_page_level_compression(bool val)
Sets preference for per-page compression decision in V2 pages.
auto get_max_page_fragment_size() const
Returns maximum page fragment size, in rows.
void set_key_value_metadata(std::vector< std::map< std::string, std::string >> metadata)
Sets metadata.
void set_max_page_fragment_size(size_type size_rows)
Sets the maximum page fragment size, in rows.
void enable_write_arrow_schema(bool val)
Sets preference for writing arrow schema. Write arrow schema if set to true.
auto is_enabled_utc_timestamps() const
Returns true if timestamps will be written as UTC.
void set_row_group_size_bytes(size_t size_bytes)
Sets the maximum row group size, in bytes.
auto is_enabled_page_level_compression() const
Returns true if per-page compression is enabled for V2 pages.
void enable_int96_timestamps(bool req)
Sets timestamp writing preferences. INT96 timestamps will be written if true and TIMESTAMP_MICROS wil...
statistics_freq get_stats_level() const
Returns level of statistics requested in output file.
std::vector< std::map< std::string, std::string > > const & get_key_value_metadata() const
Returns Key-Value footer metadata information.
auto const & get_metadata() const
Returns associated metadata.
auto get_max_page_size_rows() const
Returns maximum page size, in rows.
auto get_column_index_truncate_length() const
Returns maximum length of min or max values in column index, in bytes.
void set_column_index_truncate_length(int32_t size_bytes)
Sets the maximum length of min or max values in column index, in bytes.
sink_info const & get_sink() const
Returns sink info.
Base class for Parquet options builders.
BuilderT & compression(compression_type compression)
Sets compression type.
BuilderT & key_value_metadata(std::vector< std::map< std::string, std::string >> metadata)
Sets Key-Value footer metadata.
OptionsT & get_options()
Return reference to the options object being built.
BuilderT & utc_timestamps(bool enabled)
Set to true if timestamps are to be written as UTC.
BuilderT & max_dictionary_size(size_t val)
Sets the maximum dictionary size, in bytes.
BuilderT & max_page_size_bytes(size_t val)
Sets the maximum uncompressed page size, in bytes.
OptionsT && build()
move options member once it's built.
BuilderT & stats_level(statistics_freq sf)
Sets the level of statistics.
BuilderT & column_index_truncate_length(int32_t val)
Sets the desired maximum size in bytes for min and max values in the column index.
BuilderT & compression_statistics(std::shared_ptr< writer_compression_statistics > const &comp_stats)
Sets the pointer to the output compression statistics.
BuilderT & metadata(table_input_metadata metadata)
Sets metadata.
BuilderT & dictionary_policy(enum dictionary_policy val)
Sets the policy for dictionary use.
parquet_writer_options_builder_base(OptionsT options)
Constructor from options.
BuilderT & page_level_compression(bool enabled)
Set to true to enable per-page compression decisions for V2 pages.
BuilderT & int96_timestamps(bool enabled)
Sets whether int96 timestamps are written or not.
BuilderT & row_group_size_bytes(size_t val)
Sets the maximum row group size, in bytes.
BuilderT & sorting_columns(std::vector< sorting_column > sorting_columns)
Sets column sorting metadata.
BuilderT & write_arrow_schema(bool enabled)
Set to true if arrow schema is to be written.
parquet_writer_options_builder_base()=default
Default constructor.
BuilderT & write_v2_headers(bool enabled)
Set to true if V2 page headers are to be written.
BuilderT & max_page_fragment_size(size_type val)
Sets the maximum page fragment size, in rows.
BuilderT & row_group_size_rows(size_type val)
Sets the maximum number of rows in output row groups.
BuilderT & max_page_size_rows(size_type val)
Sets the maximum page size, in rows. Counts only top-level rows, ignoring any nesting....
Class to build parquet_writer_options.
parquet_writer_options_builder(sink_info const &sink, table_view const &table)
Constructor from sink and table.
parquet_writer_options_builder()=default
Default constructor.
parquet_writer_options_builder & partitions(std::vector< partition_info > partitions)
Sets partitions in parquet_writer_options.
parquet_writer_options_builder & column_chunks_file_paths(std::vector< std::string > file_paths)
Sets column chunks file path to be set in the raw output metadata.
Settings for write_parquet().
void set_partitions(std::vector< partition_info > partitions)
Sets partitions.
static parquet_writer_options_builder builder(sink_info const &sink, table_view const &table)
Create builder to create parquet_writer_options.
parquet_writer_options()=default
Default constructor.
std::vector< std::string > const & get_column_chunks_file_paths() const
Returns Column chunks file paths to be set in the raw output metadata.
table_view get_table() const
Returns table_view.
void set_column_chunks_file_paths(std::vector< std::string > file_paths)
Sets column chunks file path to be set in the raw output metadata.
static parquet_writer_options_builder builder()
Create builder to create parquet_writer_options.
std::vector< partition_info > const & get_partitions() const
Returns partitions.
A set of cudf::column_view's of the same size.
A set of cudf::column's of the same size.
Class definitions for building and evaluating abstract syntax tree expressions.
rmm::cuda_stream_view const get_default_stream()
Get the current default stream.
table_with_metadata read_parquet(std::vector< std::unique_ptr< cudf::io::datasource >> &&sources, std::vector< parquet::FileMetaData > &&parquet_metadatas, parquet_reader_options const &options, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Reads a Parquet dataset into a set of columns using pre-existing Parquet datasources and file metadat...
constexpr size_type default_row_group_size_rows
1 million rows per row group
constexpr int32_t default_column_index_truncate_length
truncate to 64 bytes
constexpr size_t default_row_group_size_bytes
Infinite bytes per row group.
bool is_supported_write_parquet(compression_type compression)
Check if the compression type is supported for writing Parquet files.
constexpr size_type default_max_page_fragment_size
5000 rows per page fragment
constexpr size_t default_max_dictionary_size
1MB dictionary size
bool is_supported_read_parquet(compression_type compression)
Check if the compression type is supported for reading Parquet files.
constexpr size_t default_max_page_size_bytes
512KB per page
constexpr size_type default_max_page_size_rows
20k rows per page
statistics_freq
Column statistics granularity type for parquet/orc writers.
dictionary_policy
Control use of dictionary encoding for parquet writer.
compression_type
Compression algorithms.
@ STATISTICS_ROWGROUP
Per-Rowgroup column statistics.
@ ADAPTIVE
Use dictionary when it will not impact compression.
std::unique_ptr< std::vector< uint8_t > > merge_row_group_metadata(std::vector< std::unique_ptr< std::vector< uint8_t >>> const &metadata_list)
Merges multiple raw metadata blobs that were previously created by write_parquet into a single metada...
std::unique_ptr< std::vector< uint8_t > > write_parquet(parquet_writer_options const &options, rmm::cuda_stream_view stream=cudf::get_default_stream())
Writes a set of columns to parquet format.
rmm::device_async_resource_ref get_current_device_resource_ref()
Get the current device memory resource reference.
cuda::mr::resource_ref< cuda::mr::device_accessible > device_async_resource_ref
std::vector< std::unique_ptr< column > > filter(std::vector< column_view > const &predicate_columns, std::string const &predicate_udf, std::vector< column_view > const &filter_columns, bool is_ptx, std::optional< void * > user_data=std::nullopt, null_aware is_null_aware=null_aware::NO, output_nullability predicate_nullability=output_nullability::PRESERVE, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Creates a new column by applying a filter function against every element of the input columns.
#define CUDF_EXPECTS(...)
Macro for checking (pre-)conditions that throws an exception when a condition is violated.
int32_t size_type
Row index type for columns and tables.
type_id
Identifies a column's logical element type.
Type definitions for the cuDF-IO API.
APIs for getting and setting the current device memory resource.
A generic expression that can be evaluated to return a value.
Destination information for write interfaces.
Struct used to describe column sorting metadata.
Source information for read interfaces.
Class definitions for (mutable)_table_view
Type declarations for libcudf.