Io 写入器#

写入器

函数

void write_csv(csv_writer_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream())#

将一组列写入 CSV 格式。

以下代码片段演示了如何将列写入文件

auto destination = cudf::io::sink_info("dataset.csv");
auto options     = cudf::io::csv_writer_options(destination, table->view())
  .na_rep(na)
  .include_header(include_header)
  .rows_per_chunk(rows_per_chunk);

cudf::io::write_csv(options);

参数:
  • options – 控制写入行为的设置

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

void write_json(json_writer_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream())#

将一组列写入 JSON 格式。

以下代码片段演示了如何将列写入文件

auto destination = cudf::io::sink_info("dataset.json");
auto options     = cudf::io::json_writer_options(destination, table->view())
  .na_rep(na)
  .lines(lines)
  .rows_per_chunk(rows_per_chunk);

cudf::io::write_json(options);

参数:
  • options – 控制写入行为的设置

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

void write_orc(orc_writer_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream())#

将一组列写入 ORC 格式。

以下代码片段演示了如何将列写入文件

auto destination = cudf::io::sink_info("dataset.orc");
auto options     = cudf::io::orc_writer_options::builder(destination, table->view());
cudf::io::write_orc(options);

参数:
  • options – 控制写入行为的设置

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

std::unique_ptr<std::vector<uint8_t>> write_parquet(parquet_writer_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream())#

将一组列写入 Parquet 格式。

以下代码片段演示了如何将列写入文件

auto destination = cudf::io::sink_info("dataset.parquet");
auto options     = cudf::io::parquet_writer_options::builder(destination, table->view());
cudf::io::write_parquet(options);

参数:
  • options – 控制写入行为的设置

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

返回:

如果在 parquet_writer_options 中请求,则返回一个包含文件元数据(parquet FileMetadata thrift 消息)的 blob(否则返回空 blob)。

std::unique_ptr<std::vector<uint8_t>> merge_row_group_metadata(std::vector<std::unique_ptr<std::vector<uint8_t>>> const &metadata_list)#

将先前由 write_parquet 创建的多个原始元数据 blob 合并为一个元数据 blob。

参数:

metadata_list[in] 输入文件元数据列表

返回:

一个 parquet 兼容的 blob,包含列表中所有行组的数据

变量

static constexpr statistics_freq ORC_STATISTICS_STRIPE = statistics_freq::STATISTICS_ROWGROUP#

用于区分 ORC 统计术语的常量。

ORC 将其行分组的最细粒度称为“行组(row group)”,这对应于 Parquet 的“页(pages)”。类似地,ORC 的“条带(stripe)”对应于 Parquet 的“行组(row group)”。以下常量区分了在每个级别收集的统计数据的术语。

static constexpr statistics_freq ORC_STATISTICS_ROW_GROUP = statistics_freq::STATISTICS_PAGE#
class csv_writer_options#
#include <csv.hpp>

用于 write_csv() 的设置。

公共函数

explicit csv_writer_options() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline sink_info const &get_sink() const#

返回用于写入器输出的 sink。

返回:

用于写入器输出的 sink

inline table_view const &get_table() const#

返回将写入输出的表。

返回:

将写入输出的表

inline std::vector<std::string> const &get_names() const#

返回列的名称。

返回:

输出文件中的列名称

inline std::string const &get_na_rep() const#

返回用于空条目的字符串。

返回:

用于空条目的字符串

inline bool is_enabled_include_header() const#

是否将头部写入 csv。

返回:

true 如果将头部写入 csv

inline size_type get_rows_per_chunk() const#

返回每次文件写入处理的最大行数。

返回:

每次文件写入处理的最大行数

inline std::string const &get_line_terminator() const#

返回用于分隔行的字符。

返回:

用于分隔行的字符

inline char get_inter_column_delimiter() const#

返回用于分隔列值的字符。

返回:

用于分隔列值的字符。

inline std::string const &get_true_value() const#

返回用于 INT8 类型中非零值的字符串。

返回:

用于 INT8 类型中非零值的字符串

inline std::string const &get_false_value() const#

返回用于 INT8 类型中零值的字符串。

返回:

用于 INT8 类型中零值的字符串

inline quote_style get_quoting() const#

返回写入器的引用风格。

注意:仅支持 MINIMAL 和 NONE。

  1. MINIMAL:包含特殊字符(如行分隔符、字段分隔符/引用符)的字符串列将被引用。

  2. NONE:不对任何列进行引用。

返回:

quote_style 写入器的引用风格

inline void set_names(std::vector<std::string> names)#

设置可选的关联列名称。

参数:

names – 关联列名称

inline void set_na_rep(std::string val)#

设置用于空条目的字符串。

参数:

val – 表示空值的字符串

inline void enable_include_header(bool val)#

启用/禁用将头部写入 csv。

参数:

val – 用于启用/禁用的布尔值

inline void set_rows_per_chunk(size_type val)#

设置每次文件写入处理的最大行数。

参数:

val – 每块的行数

inline void set_line_terminator(std::string term)#

设置用于分隔行的字符。

参数:

term – 表示行终止的字符

inline void set_inter_column_delimiter(char delim)#

设置用于分隔列值的字符。

参数:

delim – 分隔列值的字符

inline void set_true_value(std::string val)#

设置用于 INT8 类型中非零值的字符串。

参数:

val – 表示 INT8 类型中非零值的字符串

inline void set_false_value(std::string val)#

设置用于 INT8 类型中零值的字符串。

参数:

val – 表示 INT8 类型中零值的字符串

inline void set_table(table_view const &table)#

(重新)设置要写入的表。

参数:

table – 要写入的表

inline void set_quoting(quote_style quoting)#

设置写入器的引用风格。

注意:仅支持以下引用风格

  1. MINIMAL:包含特殊字符(如行分隔符/字段分隔符/引用符)的字符串列将被引用。

  2. NONE:不对任何列进行引用。

参数:

quoting – 写入器的新 quote_style。

公共静态函数

static csv_writer_options_builder builder(sink_info const &sink, table_view const &table)#

创建用于创建 csv_writer_options 的构建器。

参数:
  • sink – 用于写入器输出的 sink

  • table – 将写入输出的表

返回:

用于构建 csv_writer_options 的构建器

class csv_writer_options_builder#
#include <csv.hpp>

用于构建 writer_csv() 选项的构建器

公共函数

explicit csv_writer_options_builder() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline explicit csv_writer_options_builder(sink_info const &sink, table_view const &table)#

从 sink 和 table 构造。

参数:
  • sink – 用于写入器输出的 sink

  • table – 将写入输出的表

inline csv_writer_options_builder &names(std::vector<std::string> names)#

设置可选的列名称。

参数:

names – 列名称

返回:

用于链式调用的 this

inline csv_writer_options_builder &na_rep(std::string val)#

设置用于空条目的字符串。

参数:

val – 表示空值的字符串

返回:

用于链式调用的 this

inline csv_writer_options_builder &include_header(bool val)#

启用/禁用将头部写入 csv。

参数:

val – 用于启用/禁用的布尔值

返回:

用于链式调用的 this

inline csv_writer_options_builder &rows_per_chunk(int val)#

设置每次文件写入处理的最大行数。

参数:

val – 每块的行数

返回:

用于链式调用的 this

inline csv_writer_options_builder &line_terminator(std::string term)#

设置用于分隔行的字符。

参数:

term – 表示行终止的字符

返回:

用于链式调用的 this

inline csv_writer_options_builder &inter_column_delimiter(char delim)#

设置用于分隔列值的字符。

参数:

delim – 分隔列值的字符

返回:

用于链式调用的 this

inline csv_writer_options_builder &true_value(std::string val)#

设置用于 INT8 类型中非零值的字符串。

参数:

val – 表示 INT8 类型中非零值的字符串

返回:

用于链式调用的 this

inline csv_writer_options_builder &false_value(std::string val)#

设置用于 INT8 类型中零值的字符串。

参数:

val – 表示 INT8 类型中零值的字符串

返回:

用于链式调用的 this

inline csv_writer_options_builder &quoting(quote_style quoting)#

设置写入器的引用风格。

仅支持 MINIMAL 和 NONE。

参数:

quoting – 写入器的新引用风格。

返回:

用于链式调用的 this

inline operator csv_writer_options&&()#

构建完成后移动 csv_writer_options 成员。

inline csv_writer_options &&build()#

构建完成后移动 csv_writer_options 成员。

添加此函数是因为 Cython 不支持转换运算符重载。

返回:

已构建的 csv_writer_options 对象的右值引用

class json_writer_options#
#include <json.hpp>

用于 write_json() 的设置。

公共函数

explicit json_writer_options() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline sink_info const &get_sink() const#

返回用于写入器输出的 sink。

返回:

用于写入器输出的 sink

inline table_view const &get_table() const#

返回将写入输出的表。

返回:

将写入输出的表

inline std::optional<table_metadata> const &get_metadata() const#

返回元数据信息。

返回:

元数据信息

inline std::string const &get_na_rep() const#

返回用于空条目的字符串。

返回:

用于空条目的字符串

inline compression_type get_compression() const#

返回用于 sink 的压缩类型。

返回:

用于 sink 的压缩类型

inline bool is_enabled_include_nulls() const#

是否将 null 输出为 ‘null’。

返回:

true 如果将 null 输出为 ‘null’

inline bool is_enabled_lines() const#

是否使用 JSON 行作为记录格式。

返回:

true 如果使用 JSON 行作为记录格式

inline size_type get_rows_per_chunk() const#

返回每次文件写入处理的最大行数。

返回:

每次文件写入处理的最大行数

inline std::string const &get_true_value() const#

返回用于 INT8 类型中非零值的字符串。

返回:

用于 INT8 类型中非零值的字符串

inline std::string const &get_false_value() const#

返回用于 INT8 类型中零值的字符串。

返回:

用于 INT8 类型中零值的字符串

inline void set_table(table_view tbl)#

设置要写入输出的表。

参数:

tbl – 用于输出的表

inline void set_compression(compression_type comptype)#

设置要使用的压缩类型。

参数:

comptype – 用于 sink 的压缩类型

inline void set_metadata(table_metadata metadata)#

设置元数据。

参数:

metadata – 关联元数据

inline void set_na_rep(std::string val)#

设置用于空条目的字符串。

参数:

val – 表示空值的字符串

inline void enable_include_nulls(bool val)#

启用/禁用将 null 输出为 ‘null’。

参数:

val – 用于启用/禁用的布尔值

inline void enable_lines(bool val)#

启用/禁用记录格式的 JSON 行。

参数:

val – 用于启用/禁用 JSON 行的布尔值

inline void set_rows_per_chunk(size_type val)#

设置每次文件写入处理的最大行数。

参数:

val – 每块的行数

inline void set_true_value(std::string val)#

设置用于 INT8 类型中非零值的字符串。

参数:

val – 表示 INT8 类型中非零值的字符串

inline void set_false_value(std::string val)#

设置用于 INT8 类型中零值的字符串。

参数:

val – 表示 INT8 类型中零值的字符串

公共静态函数

static json_writer_options_builder builder(sink_info const &sink, table_view const &table)#

创建用于构建 json_writer_options 的构建器。

参数:
  • sink – 用于写入器输出的 sink

  • table – 将写入输出的表

返回:

用于构建 json_writer_options 的构建器

class json_writer_options_builder#
#include <json.hpp>

用于构建 writer_json() 选项的构建器

公共函数

explicit json_writer_options_builder() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline explicit json_writer_options_builder(sink_info const &sink, table_view const &table)#

从 sink 和 table 构造。

参数:
  • sink – 用于写入器输出的 sink

  • table – 将写入输出的表

inline json_writer_options_builder &table(table_view tbl)#

设置要写入输出的表。

参数:

tbl – 用于输出的表

返回:

用于链式调用的 this

inline json_writer_options_builder &compression(compression_type comptype)#

设置输出接收器的压缩类型。

参数:

comptype – 使用的压缩类型

返回:

用于链式调用的 this

inline json_writer_options_builder &metadata(table_metadata metadata)#

设置可选元数据(带列名)。

参数:

metadata – 元数据(带列名)

返回:

用于链式调用的 this

inline json_writer_options_builder &na_rep(std::string val)#

设置用于空条目的字符串。

参数:

val – 表示空值的字符串

返回:

用于链式调用的 this

inline json_writer_options_builder &include_nulls(bool val)#

启用/禁用将 null 输出为 ‘null’。

参数:

val – 用于启用/禁用的布尔值

返回:

用于链式调用的 this

inline json_writer_options_builder &lines(bool val)#

启用/禁用记录格式的 JSON 行。

参数:

val – 用于启用/禁用的布尔值

返回:

用于链式调用的 this

inline json_writer_options_builder &rows_per_chunk(int val)#

设置每次文件写入处理的最大行数。

参数:

val – 每块的行数

返回:

用于链式调用的 this

inline json_writer_options_builder &true_value(std::string val)#

设置用于 INT8 类型中非零值的字符串。

参数:

val – 表示 INT8 类型中非零值的字符串

返回:

用于链式调用的 this

inline json_writer_options_builder &false_value(std::string val)#

设置用于 INT8 类型中零值的字符串。

参数:

val – 表示 INT8 类型中零值的字符串

返回:

用于链式调用的 this

inline operator json_writer_options&&()#

构建完成后移动 json_writer_options 成员。

inline json_writer_options &&build()#

构建完成后移动 json_writer_options 成员。

添加此函数是因为 Cython 不支持转换运算符重载。

返回:

构建好的 json_writer_options 对象的右值引用

class orc_writer_options#
#include <orc.hpp>

用于 write_orc() 的设置。

公共函数

explicit orc_writer_options() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline sink_info const &get_sink() const#

返回接收器信息。

返回:

接收器信息

inline compression_type get_compression() const#

返回压缩类型。

返回:

压缩类型

inline bool is_enabled_statistics() const#

是否启用/禁用写入列统计信息。

返回:

如果启用写入列统计信息,则为 true

inline statistics_freq get_statistics_freq() const#

返回统计信息收集频率。

返回:

统计信息收集频率

inline auto get_stripe_size_bytes() const#

返回最大条带大小(字节)。

返回:

最大条带大小(字节)

inline auto get_stripe_size_rows() const#

返回最大条带大小(行)。

返回:

最大条带大小(行)

inline auto get_row_index_stride() const#

返回行索引步长。

返回:

行索引步长

inline table_view get_table() const#

返回要写入输出的表。

返回:

要写入输出的表

inline auto const &get_metadata() const#

返回关联的元数据。

返回:

关联的元数据

inline std::map<std::string, std::string> const &get_key_value_metadata() const#

返回键值页脚元数据信息。

返回:

键值页脚元数据信息

inline std::shared_ptr<writer_compression_statistics> get_compression_statistics() const#

返回指向用户提供的压缩统计信息的共享指针。

返回:

压缩统计信息

inline bool get_enable_dictionary_sort() const#

返回字符串字典是否应排序。

返回:

如果字符串字典应排序,则为 true

inline void set_compression(compression_type comp)#

设置压缩类型。

参数:

comp – 压缩类型

inline void enable_statistics(statistics_freq val)#

选择统计信息收集的粒度。

粒度可以设置为

  • cudf::io::STATISTICS_NONE: 不收集统计信息。

  • cudf::io::ORC_STATISTICS_STRIPE: 为每个 ORC 条带收集统计信息。

  • cudf::io::ORC_STATISTICS_ROWGROUP: 为每个 ORC 行组收集统计信息。

参数:

val – 统计信息收集频率

inline void set_stripe_size_bytes(size_t size_bytes)#

设置最大条带大小(字节)。

参数:

size_bytes – 要设置的最大条带大小(字节)

抛出:

cudf::logic_error – 如果传递的值小于最小大小

inline void set_stripe_size_rows(size_type size_rows)#

设置最大条带大小(行)。

如果条带大小小于行组大小,则行组大小将被减小以匹配条带大小。

参数:

size_rows – 要设置的最大条带大小(行)

抛出:

cudf::logic_error – 如果传递的值小于最小行数

inline void set_row_index_stride(size_type stride)#

设置行索引步长。

向下取整到 8 的倍数。

参数:

stride – 要设置的行索引步长

抛出:

cudf::logic_error – 如果传递的值小于最小行索引步长

inline void set_table(table_view tbl)#

设置要写入输出的表。

参数:

tbl – 用于输出的表

inline void set_metadata(table_input_metadata meta)#

设置关联的元数据。

参数:

meta – 关联的元数据

inline void set_key_value_metadata(std::map<std::string, std::string> metadata)#

设置元数据。

参数:

metadata – 键值页脚元数据

inline void set_compression_statistics(std::shared_ptr<writer_compression_statistics> comp_stats)#

设置指向输出压缩统计信息的指针。

参数:

comp_stats – 写入后要更新的压缩统计信息指针

inline void set_enable_dictionary_sort(bool val)#

设置字符串字典是否应排序。

参数:

val – 用于启用/禁用的布尔值

公共静态函数

static orc_writer_options_builder builder(sink_info const &sink, table_view const &table)#

创建用于构建 orc_writer_options 的构建器。

参数:
  • sink – 用于写入器输出的 sink

  • table – 将写入输出的表

返回:

用于构建 orc_writer_options 的构建器

class orc_writer_options_builder#
#include <orc.hpp>

构建用于 write_orc() 的设置。

公共函数

orc_writer_options_builder() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline explicit orc_writer_options_builder(sink_info const &sink, table_view const &table)#

从 sink 和 table 构造。

参数:
  • sink – 用于写入器输出的 sink

  • table – 将写入输出的表

inline orc_writer_options_builder &compression(compression_type comp)#

设置压缩类型。

参数:

comp – 要使用的压缩类型

返回:

用于链式调用的 this

inline orc_writer_options_builder &enable_statistics(statistics_freq val)#

选择要写入的列统计信息的粒度。

粒度可以设置为

  • cudf::io::STATISTICS_NONE: 不收集统计信息。

  • cudf::io::ORC_STATISTICS_STRIPE: 为每个 ORC 条带收集统计信息。

  • cudf::io::ORC_STATISTICS_ROWGROUP: 为每个 ORC 行组收集统计信息。

参数:

val – 统计信息收集级别

返回:

用于链式调用的 this

inline orc_writer_options_builder &stripe_size_bytes(size_t val)#

设置最大条带大小(字节)。

参数:

val – 最大条带大小

返回:

用于链式调用的 this

inline orc_writer_options_builder &stripe_size_rows(size_type val)#

设置输出条带中的最大行数。

参数:

val – 最大行数

返回:

用于链式调用的 this

inline orc_writer_options_builder &row_index_stride(size_type val)#

设置行索引步长。

参数:

val – 新的行索引步长

返回:

用于链式调用的 this

inline orc_writer_options_builder &table(table_view tbl)#

设置要写入输出的表。

参数:

tbl – 用于输出的表

返回:

用于链式调用的 this

inline orc_writer_options_builder &metadata(table_input_metadata meta)#

设置关联的元数据。

参数:

meta – 关联的元数据

返回:

用于链式调用的 this

inline orc_writer_options_builder &key_value_metadata(std::map<std::string, std::string> metadata)#

设置键值页脚元数据。

参数:

metadata – 键值页脚元数据

返回:

用于链式调用的 this

inline orc_writer_options_builder &compression_statistics(std::shared_ptr<writer_compression_statistics> const &comp_stats)#

设置指向输出压缩统计信息的指针。

参数:

comp_stats – 写入完成后要填充的压缩统计信息指针

返回:

用于链式调用的 this

inline orc_writer_options_builder &enable_dictionary_sort(bool val)#

设置字符串字典是否应排序。

参数:

val – 用于启用/禁用的布尔值

返回:

用于链式调用的 this

inline operator orc_writer_options&&()#

构建完成后移动 orc_writer_options 成员。

inline orc_writer_options &&build()#

构建完成后移动 orc_writer_options 成员。

添加此函数是因为 Cython 不支持转换运算符重载。

返回:

构建好的 orc_writer_options 对象的右值引用

class chunked_orc_writer_options#
#include <orc.hpp>

用于 write_orc_chunked() 的设置。

公共函数

explicit chunked_orc_writer_options() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline sink_info const &get_sink() const#

返回接收器信息。

返回:

接收器信息

inline compression_type get_compression() const#

返回压缩类型。

返回:

压缩类型

inline statistics_freq get_statistics_freq() const#

返回统计信息收集的粒度。

返回:

统计信息收集的粒度

inline auto get_stripe_size_bytes() const#

返回最大条带大小(字节)。

返回:

最大条带大小(字节)

inline auto get_stripe_size_rows() const#

返回最大条带大小(行)。

返回:

最大条带大小(行)

inline auto get_row_index_stride() const#

返回行索引步长。

返回:

行索引步长

inline auto const &get_metadata() const#

返回关联的元数据。

返回:

关联的元数据

inline std::map<std::string, std::string> const &get_key_value_metadata() const#

返回键值页脚元数据信息。

返回:

键值页脚元数据信息

inline std::shared_ptr<writer_compression_statistics> get_compression_statistics() const#

返回指向用户提供的压缩统计信息的共享指针。

返回:

压缩统计信息

inline bool get_enable_dictionary_sort() const#

返回字符串字典是否应排序。

返回:

如果字符串字典应排序,则为 true

inline void set_compression(compression_type comp)#

设置压缩类型。

参数:

comp – 要使用的压缩类型

inline void enable_statistics(statistics_freq val)#

选择统计信息收集的粒度。

粒度可以设置为

  • cudf::io::STATISTICS_NONE: 不收集统计信息。

  • cudf::io::ORC_STATISTICS_STRIPE: 为每个 ORC 条带收集统计信息。

  • cudf::io::ORC_STATISTICS_ROWGROUP: 为每个 ORC 行组收集统计信息。

参数:

val – 统计信息收集频率

inline void set_stripe_size_bytes(size_t size_bytes)#

设置最大条带大小(字节)。

参数:

size_bytes – 要设置的最大条带大小(字节)

抛出:

cudf::logic_error – 如果传递的值小于最小条带大小

inline void set_stripe_size_rows(size_type size_rows)#

设置最大条带大小(行)。

如果条带大小小于行组大小,则行组大小将被减小以匹配条带大小。

参数:

size_rows – 要设置的最大条带大小(行)

抛出:

cudf::logic_error – 如果传递的值小于条带中的最小行数

inline void set_row_index_stride(size_type stride)#

设置行索引步长。

向下取整到 8 的倍数。

参数:

stride – 要设置的行索引步长

抛出:

cudf::logic_error – 如果传递的值小于行组中的最小行数

inline void metadata(table_input_metadata meta)#

设置关联的元数据。

参数:

meta – 关联的元数据

inline void set_key_value_metadata(std::map<std::string, std::string> metadata)#

设置键值页脚元数据。

参数:

metadata – 键值页脚元数据

inline void set_compression_statistics(std::shared_ptr<writer_compression_statistics> comp_stats)#

设置指向输出压缩统计信息的指针。

参数:

comp_stats – 写入后要更新的压缩统计信息指针

inline void set_enable_dictionary_sort(bool val)#

设置字符串字典是否应排序。

参数:

val – 用于启用/禁用的布尔值

公共静态函数

static chunked_orc_writer_options_builder builder(sink_info const &sink)#

创建用于构建 chunked_orc_writer_options 的构建器。

参数:

sink – 用于写入器输出的 sink

返回:

用于构建 chunked_orc_writer_options 的构建器

class chunked_orc_writer_options_builder#
#include <orc.hpp>

构建用于 write_orc_chunked() 的设置。

公共函数

chunked_orc_writer_options_builder() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline explicit chunked_orc_writer_options_builder(sink_info const &sink)#

从 sink 和 table 构造。

参数:

sink – 用于写入器输出的 sink

inline chunked_orc_writer_options_builder &compression(compression_type comp)#

设置压缩类型。

参数:

comp – 要使用的压缩类型

返回:

用于链式调用的 this

inline chunked_orc_writer_options_builder &enable_statistics(statistics_freq val)#

选择统计信息收集的粒度。

粒度可以设置为

  • cudf::io::STATISTICS_NONE: 不收集统计信息。

  • cudf::io::ORC_STATISTICS_STRIPE: 为每个 ORC 条带收集统计信息。

  • cudf::io::ORC_STATISTICS_ROWGROUP: 为每个 ORC 行组收集统计信息。

参数:

val – 统计信息收集频率

返回:

用于链式调用的 this

inline chunked_orc_writer_options_builder &stripe_size_bytes(size_t val)#

设置最大条带大小(字节)。

参数:

val – 最大条带大小

返回:

用于链式调用的 this

inline chunked_orc_writer_options_builder &stripe_size_rows(size_type val)#

设置输出条带中的最大行数。

参数:

val – 最大行数

返回:

用于链式调用的 this

inline chunked_orc_writer_options_builder &row_index_stride(size_type val)#

设置行索引步长。

参数:

val – 新的行索引步长

返回:

用于链式调用的 this

inline chunked_orc_writer_options_builder &metadata(table_input_metadata meta)#

设置关联的元数据。

参数:

meta – 关联的元数据

返回:

用于链式调用的 this

inline chunked_orc_writer_options_builder &key_value_metadata(std::map<std::string, std::string> metadata)#

设置键值页脚元数据。

参数:

metadata – 键值页脚元数据

返回:

用于链式调用的 this

inline chunked_orc_writer_options_builder &compression_statistics(std::shared_ptr<writer_compression_statistics> const &comp_stats)#

设置指向输出压缩统计信息的指针。

参数:

comp_stats – 写入完成后要填充的压缩统计信息指针

返回:

用于链式调用的 this

inline chunked_orc_writer_options_builder &enable_dictionary_sort(bool val)#

设置字符串字典是否应排序。

参数:

val – 用于启用/禁用的布尔值

返回:

用于链式调用的 this

inline operator chunked_orc_writer_options&&()#

构建完成后移动 chunked_orc_writer_options 成员。

inline chunked_orc_writer_options &&build()#

构建完成后移动 chunked_orc_writer_options 成员。

添加此函数是因为 Cython 不支持转换运算符重载。

返回:

构建好的 chunked_orc_writer_options 对象的右值引用

class orc_chunked_writer#
#include <orc.hpp>

块状 ORC 写入器类以块状/流式形式写入 ORC 文件。

write_orc_chunked_ 路径的目的是允许通过多次传递将任意大小/任意数量的行写入 ORC 文件。

以下代码片段演示了如何通过写入一系列独立的 cudf::tables 来写入包含一个逻辑表的单个 ORC 文件。

 ...
 std::string filepath = "dataset.orc";
 cudf::io::chunked_orc_writer_options options = cudf::io::chunked_orc_writer_options
options::builder(cudf::sink_info(filepath));
 ...
 orc_chunked_writer writer(options)
 writer.write(table0)
 writer.write(table1)
   ...
 writer.close();

公共函数

orc_chunked_writer()#

默认构造函数,不应使用。添加它仅为了满足 cython 的要求。

~orc_chunked_writer()#

虚析构函数,添加此函数是为了避免详细类型泄漏。

orc_chunked_writer(chunked_orc_writer_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream())#

带有块状写入器选项的构造函数。

参数:
  • options – **[in]** 用于写入表的选项

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

orc_chunked_writer &write(table_view const &table)#

将表写入输出。

参数:

table – **[in]** 需要写入的表

返回:

返回类对象的引用

void close()#

完成块状/流式写入过程。

公共成员

std::unique_ptr<orc::detail::writer> writer#

指向 impl 写入器类的唯一指针。

struct sorting_column#
#include <parquet.hpp>

用于描述列排序元数据的结构体。

公共成员

int column_idx = {}#

行组中的叶子列索引

bool is_descending = {false}#

如果排序顺序是降序,则为 true

bool is_nulls_first = {true}#

如果 null 值在非 null 值之前,则为 true

class parquet_writer_options_base#
#include <parquet.hpp>

write_parquet()parquet_chunked_writer 的基本设置。

cudf::io::chunked_parquet_writer_options, cudf::io::parquet_writer_options 继承

公共函数

parquet_writer_options_base() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline sink_info const &get_sink() const#

返回接收器信息。

返回:

接收器信息

inline compression_type get_compression() const#

返回使用的压缩格式。

返回:

压缩格式

inline statistics_freq get_stats_level() const#

返回输出文件中请求的统计信息级别。

返回:

输出文件中请求的统计信息级别

inline auto const &get_metadata() const#

返回关联的元数据。

返回:

关联的元数据

inline std::vector<std::map<std::string, std::string>> const &get_key_value_metadata() const#

返回键值页脚元数据信息。

返回:

键值页脚元数据信息

inline bool is_enabled_int96_timestamps() const#

如果时间戳将以 INT96 格式写入,则返回 true

返回:

如果时间戳将以 INT96 格式写入,则为 true

inline auto is_enabled_utc_timestamps() const#

如果时间戳将以 UTC 格式写入,则返回 true

返回:

如果时间戳将以 UTC 格式写入,则为 true

inline auto is_enabled_write_arrow_schema() const#

如果 Arrow schema 将被写入,则返回 true

返回:

如果 Arrow schema 将被写入,则为 true

inline auto get_row_group_size_bytes() const#

返回最大行组大小(以字节为单位)。

返回:

最大行组大小(以字节为单位)

inline auto get_row_group_size_rows() const#

返回最大行组大小(以行为单位)。

返回:

最大行组大小(以行为单位)

inline auto get_max_page_size_bytes() const#

返回最大未压缩页大小(以字节为单位)。

如果设置得大于行组大小,则将返回行组大小。

返回:

最大未压缩页大小(以字节为单位)

inline auto get_max_page_size_rows() const#

返回最大页大小(以行为单位)。

如果设置得大于行组大小,则将返回行组大小。

返回:

最大页大小(以行为单位)

inline auto const &get_column_index_truncate_length() const#

返回列索引中最小值或最大值的最大长度(以字节为单位)。

返回:

最小值/最大值将被截断到的长度

inline dictionary_policy get_dictionary_policy() const#

返回字典使用策略。

返回:

字典使用策略

inline auto get_max_dictionary_size() const#

返回最大字典大小(以字节为单位)。

返回:

最大字典大小(以字节为单位)。

inline auto get_max_page_fragment_size() const#

返回最大页片段大小(以行为单位)。

返回:

最大页片段大小(以行为单位)。

inline std::shared_ptr<writer_compression_statistics> get_compression_statistics() const#

返回指向用户提供的压缩统计信息的共享指针。

返回:

压缩统计信息

inline auto is_enabled_write_v2_headers() const#

如果应写入 V2 页眉,则返回 true

返回:

如果应写入 V2 页眉,则为 true

inline auto const &get_sorting_columns() const#

返回排序列。

返回:

列排序顺序元数据

void set_metadata(table_input_metadata metadata)#

设置元数据。

参数:

metadata – 关联元数据

void set_key_value_metadata(std::vector<std::map<std::string, std::string>> metadata)#

设置元数据。

参数:

metadata – 键值页脚元数据

void set_stats_level(statistics_freq sf)#

设置统计信息级别。

参数:

sf – 输出文件中请求的统计信息级别

void set_compression(compression_type compression)#

设置压缩类型。

参数:

**compression** – 要使用的压缩类型

void enable_int96_timestamps(bool req)#

设置时间戳写入偏好。如果为 true,则写入 INT96 时间戳;如果为 false,则写入 TIMESTAMP_MICROS 时间戳。

参数:

**req** – 用于启用/禁用写入 INT96 时间戳的布尔值

void enable_utc_timestamps(bool val)#

设置以 UTC 格式写入时间戳的偏好。如果设置为 true,则以 UTC 格式写入时间戳。

参数:

**val** – 用于启用/禁用以 UTC 格式写入时间戳的布尔值。

void enable_write_arrow_schema(bool val)#

设置写入 Arrow schema 的偏好。如果设置为 true,则写入 Arrow schema。

参数:

**val** – 用于启用/禁用写入 Arrow schema 的布尔值。

void set_row_group_size_bytes(size_t size_bytes)#

设置最大行组大小(以字节为单位)。

参数:

**size_bytes** – 要设置的最大行组大小(以字节为单位)

void set_row_group_size_rows(size_type size_rows)#

设置最大行组大小(以行为单位)。

参数:

**size_rows** – 要设置的最大行组大小(以行为单位)

void set_max_page_size_bytes(size_t size_bytes)#

设置最大未压缩页大小(以字节为单位)。

参数:

**size_bytes** – 要设置的最大未压缩页大小(以字节为单位)

void set_max_page_size_rows(size_type size_rows)#

设置最大页大小(以行为单位)。

参数:

**size_rows** – 要设置的最大页大小(以行为单位)

void set_column_index_truncate_length(int32_t size_bytes)#

设置列索引中最小值或最大值的最大长度(以字节为单位)。

参数:

**size_bytes** – 最小值/最大值将被截断到的长度

void set_dictionary_policy(dictionary_policy policy)#

设置字典使用策略。

参数:

**policy** – 字典使用策略

void set_max_dictionary_size(size_t size_bytes)#

设置最大字典大小(以字节为单位)。

参数:

**size_bytes** – 最大字典大小(以字节为单位)

void set_max_page_fragment_size(size_type size_rows)#

设置最大页片段大小(以行为单位)。

参数:

**size_rows** – 最大页片段大小(以行为单位)。

void set_compression_statistics(std::shared_ptr<writer_compression_statistics> comp_stats)#

设置指向输出压缩统计信息的指针。

参数:

comp_stats – 写入后要更新的压缩统计信息指针

void enable_write_v2_headers(bool val)#

设置 V2 页眉的偏好。如果设置为 true,则写入 V2 页眉。

参数:

**val** – 用于启用/禁用写入 V2 页眉的布尔值。

void set_sorting_columns(std::vector<sorting_column> sorting_columns)#

设置排序列。

参数:

**sorting_columns** – 列排序顺序元数据

template<class BuilderT, class OptionsT>
class parquet_writer_options_builder_base#
#include <parquet.hpp>

Parquet 选项构建器的基类。

公共函数

explicit parquet_writer_options_builder_base() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

BuilderT &metadata(table_input_metadata metadata)#

设置元数据。

参数:

metadata – 关联元数据

返回:

用于链式调用的 this

BuilderT &key_value_metadata(std::vector<std::map<std::string, std::string>> metadata)#

设置键值页脚元数据。

参数:

metadata – 键值页脚元数据

返回:

用于链式调用的 this

BuilderT &stats_level(statistics_freq sf)#

设置统计信息级别。

参数:

sf – 输出文件中请求的统计信息级别

返回:

用于链式调用的 this

BuilderT &compression(compression_type compression)#

设置压缩类型。

参数:

**compression** – 要使用的压缩类型

返回:

用于链式调用的 this

BuilderT &row_group_size_bytes(size_t val)#

设置最大行组大小(以字节为单位)。

参数:

**val** – 最大行组大小

返回:

用于链式调用的 this

BuilderT &row_group_size_rows(size_type val)#

设置输出行组中的最大行数。

参数:

val – 最大行数

返回:

用于链式调用的 this

BuilderT &max_page_size_bytes(size_t val)#

设置最大未压缩页大小(以字节为单位)。

作为对写入器的提示,在某些情况下可能会超出。不能大于以字节为单位的行组大小,如果大于将调整以匹配。

参数:

**val** – 最大页大小

返回:

用于链式调用的 this

BuilderT &max_page_size_rows(size_type val)#

设置最大页大小(以行为单位)。仅计算顶层行,忽略任何嵌套。不能大于以行为单位的行组大小,如果大于将调整以匹配。

参数:

**val** – 每页最大行数

返回:

用于链式调用的 this

BuilderT &column_index_truncate_length(int32_t val)#

设置列索引中最小值和最大值的所需最大大小(以字节为单位)。

超出此限制的值将被截断,但会被修改,使其仍为有效的下限和上限。这仅适用于可变长度类型,例如字符串。如果不存在导致有效上限的合适截断,则最大值将不会被截断。

默认值为 64。

参数:

**val** – 最小值/最大值将被截断到的长度,0 表示不截断

返回:

用于链式调用的 this

BuilderT &dictionary_policy(enum dictionary_policy val)#

设置字典使用策略。

某些压缩算法(例如 Zstandard)对可压缩缓冲区的大小有限制。在某些情况下,字典可能会增长超出此限制,这将阻止对该列进行压缩。此设置控制写入器在此类情况下的行为方式。dictionary_policy::ADAPTIVE 设置将对字典超出限制的列禁用字典编码。dictionary_policy::NEVER 设置将全局禁用字典编码的使用。dictionary_policy::ALWAYS 设置将允许使用字典编码,即使这会导致对原本可以压缩的列禁用压缩。

默认值为 dictionary_policy::ADAPTIVE。

参数:

val – 字典使用策略

返回:

用于链式调用的 this

BuilderT &max_dictionary_size(size_t val)#

设置最大字典大小(以字节为单位)。

对于字典大小超过此限制的任何列块,禁用字典编码。仅当 dictionary_policy 设置为“ADAPTIVE”时使用。

默认值为 1048576 (1MiB)。

参数:

val – 最大字典大小

返回:

用于链式调用的 this

BuilderT &max_page_fragment_size(size_type val)#

设置最大页片段大小(以行为单位)。

具有嵌套模式或非常长字符串的文件可能需要小于默认值 5000 的页面片段大小,以确保单个片段不会超过所需的页面最大字节大小。

参数:

val – 最大页面片段大小

返回:

用于链式调用的 this

BuilderT &compression_statistics(std::shared_ptr<writer_compression_statistics> const &comp_stats)#

设置指向输出压缩统计信息的指针。

参数:

comp_stats – 写入完成后要填充的压缩统计信息指针

返回:

用于链式调用的 this

BuilderT &int96_timestamps(bool enabled)#

设置是否写入 int96 时间戳。

参数:

enabled – 启用/禁用 int96 时间戳的布尔值

返回:

用于链式调用的 this

BuilderT &utc_timestamps(bool enabled)#

如果时间戳要写入为 UTC,则设置为 true。

参数:

enabled – 启用/禁用以 UTC 格式写入时间戳的布尔值。

返回:

用于链式调用的 this

BuilderT &write_arrow_schema(bool enabled)#

如果 arrow schema 要写入,则设置为 true。

参数:

enabled – 启用/禁用写入 arrow schema 的布尔值

返回:

用于链式调用的 this

BuilderT &write_v2_headers(bool enabled)#

如果 V2 页面头部要写入,则设置为 true。

参数:

enabled – 启用/禁用写入 V2 页面头部的布尔值。

返回:

用于链式调用的 this

BuilderT &sorting_columns(std::vector<sorting_column> sorting_columns)#

设置列排序元数据。

参数:

**sorting_columns** – 列排序顺序元数据

返回:

用于链式调用的 this

operator OptionsT&&()#

构建后移动 options 成员。

OptionsT &&build()#

构建后移动 options 成员。

添加此函数是因为 Cython 不支持转换运算符重载。

返回:

构建的 parquet_writer_options 对象的右值引用

class parquet_writer_options : public cudf::io::parquet_writer_options_base#
#include <parquet.hpp>

write_parquet() 的设置。

公共函数

parquet_writer_options() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

inline table_view get_table() const#

返回 table_view

返回:

表视图

inline std::vector<partition_info> const &get_partitions() const#

返回分区。

返回:

分区

inline std::vector<std::string> const &get_column_chunks_file_paths() const#

返回要设置在原始输出元数据中的列块文件路径。

返回:

要设置在原始输出元数据中的列块文件路径

void set_partitions(std::vector<partition_info> partitions)#

设置分区。

参数:

partitions – 输入表的分区,格式为 {start_row, num_rows} 对。如果指定,必须与 sink_info 中的接收器(sink)数量大小相同

void set_column_chunks_file_paths(std::vector<std::string> file_paths)#

设置要设置在原始输出元数据中的列块文件路径。

参数:

file_paths – 指示文件路径的字符串向量。必须与 sink info 中的数据接收器(data sink)数量大小相同

公共静态函数

static parquet_writer_options_builder builder(sink_info const &sink, table_view const &table)#

创建构建器以创建 parquet_writer_options

参数:
  • sink – 用于写入器输出的 sink

  • table – 将写入输出的表

返回:

用于构建 parquet_writer_options 的构建器

static parquet_writer_options_builder builder()#

创建构建器以创建 parquet_writer_options

返回:

parquet_writer_options_builder

class parquet_writer_options_builder : public cudf::io::parquet_writer_options_builder_base<parquet_writer_options_builder, parquet_writer_options>#
#include <parquet.hpp>

用于构建 parquet_writer_options 的类。

公共函数

explicit parquet_writer_options_builder() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

explicit parquet_writer_options_builder(sink_info const &sink, table_view const &table)#

从 sink 和 table 构造。

参数:
  • sink – 用于写入器输出的 sink

  • table – 将写入输出的表

parquet_writer_options_builder &partitions(std::vector<partition_info> partitions)#

parquet_writer_options 中设置分区。

参数:

partitions – 输入表的分区,格式为 {start_row, num_rows} 对。如果指定,必须与 sink_info 中的接收器(sink)数量大小相同

返回:

用于链式调用的 this

parquet_writer_options_builder &column_chunks_file_paths(std::vector<std::string> file_paths)#

设置要设置在原始输出元数据中的列块文件路径。

参数:

file_paths – 指示文件路径的字符串向量。必须与数据接收器数量大小相同

返回:

用于链式调用的 this

class chunked_parquet_writer_options : public cudf::io::parquet_writer_options_base#
#include <parquet.hpp>

parquet_chunked_writer 的设置。

公共函数

chunked_parquet_writer_options() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

公共静态函数

static chunked_parquet_writer_options_builder builder(sink_info const &sink)#

创建构建器以构建 chunked_parquet_writer_options

参数:

sink – 用于写入器输出的接收器(sink)

返回:

用于构建 chunked_parquet_writer_options 的构建器

class chunked_parquet_writer_options_builder : public cudf::io::parquet_writer_options_builder_base<chunked_parquet_writer_options_builder, chunked_parquet_writer_options>#
#include <parquet.hpp>

用于构建 chunked_parquet_writer_options 的类。

公共函数

chunked_parquet_writer_options_builder() = default#

默认构造函数。

添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。

chunked_parquet_writer_options_builder(sink_info const &sink)#

从接收器(sink)构造。

参数:

sink – 用于写入器输出的 sink

class parquet_chunked_writer#
#include <parquet.hpp>

分块 Parquet 写入器类,用于处理选项和分块写入表。

parquet_chunked_writer 的目的是允许多次传递将任意大/任意数量的行写入 Parquet 文件。

以下代码片段演示了如何通过写入一系列单独的 cudf::tables 来写入包含一个逻辑表的单个 Parquet 文件。

auto destination = cudf::io::sink_info("dataset.parquet");
auto options = cudf::io::chunked_parquet_writer_options::builder(destination, table->view());
auto writer  = cudf::io::parquet_chunked_writer(options);

writer.write(table0)
writer.write(table1)
writer.close()

公共函数

parquet_chunked_writer()#

默认构造函数,不应使用。添加此项仅为了满足 cython。添加此项是为了不暴露详细 API。

parquet_chunked_writer(chunked_parquet_writer_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream())#

带有块状写入器选项的构造函数。

参数:
  • options – **[in]** 用于写入表的选项

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

~parquet_chunked_writer()#

默认析构函数。添加此项是为了不暴露详细 API。

parquet_chunked_writer &write(table_view const &table, std::vector<partition_info> const &partitions = {})#

将表写入输出。

参数:
  • table – **[in]** 需要写入的表

  • partitions[in] 用于将表分区的可选分区。如果指定,必须与接收器(sink)数量大小相同。

抛出:
返回:

返回类对象的引用

std::unique_ptr<std::vector<uint8_t>> close(std::vector<std::string> const &column_chunks_file_paths = {})#

完成块状/流式写入过程。

参数:

column_chunks_file_paths[in] 要设置在原始输出元数据中的列块文件路径

返回:

如果提供了 column_chunks_file_paths,则返回一个包含列表中所有行组数据的 Parquet 兼容 blob,否则返回 null。

公共成员

std::unique_ptr<parquet::detail::writer> writer#

指向 impl 写入器类的唯一指针。