Io 写入器#

group io_writers

函数

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);

Parameters:
  • 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);

Parameters:
  • 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);

Parameters:
  • 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);

Parameters:
  • options – 用于控制写入行为的设置

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

Returns:

如果请求在parquet_writer_options中,则包含文件元数据的blob(parquet FileMetadata thrift消息)(否则为空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创建的多个原始元数据块合并为一个元数据块。

Parameters:

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

Returns:

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

变量

static constexpr statistics_freq ORC_STATISTICS_STRIPE = statistics_freq::STATISTICS_ROWGROUP#

用于消除ORC统计术语歧义的常量。

ORC 将其最细粒度的行分组称为“行组”,这对应于 Parquet 的“页”。同样,ORC 的“条带”对应于 Parquet 的“行组”。以下常量用于消除在每个级别收集的统计数据的术语歧义。

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#

返回用于写入器输出的接收器。

Returns:

用于写入器输出的接收器

inline table_view const &get_table() const#

返回将写入输出的表。

Returns:

将写入输出的表格

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

返回列的名称。

Returns:

输出文件中的列名

inline std::string get_na_rep() const#

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

Returns:

用于空条目的字符串

inline bool is_enabled_include_header() const#

是否将标题写入csv。

Returns:

true 如果要将标题写入csv

inline size_type get_rows_per_chunk() const#

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

Returns:

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

inline std::string get_line_terminator() const#

返回用于分隔行的字符。

Returns:

用于分隔行的字符

inline char get_inter_column_delimiter() const#

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

Returns:

用于分隔列值的字符。

inline std::string get_true_value() const#

返回用于INT8类型中值不为0的字符串。

Returns:

用于INT8类型中值不为0的字符串

inline std::string get_false_value() const#

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

Returns:

用于INT8类型中值等于0的字符串

inline quote_style get_quoting() const#

返回写入器的引用样式。

注意:仅支持MINIMAL和NONE。

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

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

Returns:

quote_style 写入器的引用样式

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

设置可选的关联列名。

Parameters:

names – 关联的列名

inline void set_na_rep(std::string val)#

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

Parameters:

val – 用于表示空值的字符串

inline void enable_include_header(bool val)#

启用/禁用将标题写入csv。

Parameters:

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

inline void set_rows_per_chunk(size_type val)#

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

Parameters:

val – 每块的行数

inline void set_line_terminator(std::string term)#

设置用于分隔行的字符。

Parameters:

term – 表示行终止的字符

inline void set_inter_column_delimiter(char delim)#

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

Parameters:

delim – 用于分隔列值的字符

inline void set_true_value(std::string val)#

设置用于INT8类型中值不等于0的字符串。

Parameters:

val – 用于表示 INT8 类型中不等于 0 的值的字符串

inline void set_false_value(std::string val)#

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

Parameters:

val – 用于表示 INT8 类型中值为 0 的字符串

inline void set_table(table_view const &table)#

(重新)设置正在写入的表。

Parameters:

table – 要写入的表

inline void set_quoting(quote_style quoting)#

设置写入器的引用样式。

注意:仅支持以下引用样式:

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

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

Parameters:

quoting – 写入器的新 quote_style。

公共静态函数

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

创建构建器以创建 csv_writer_options

Parameters:
  • sink – 用于写入器输出的接收器

  • table – 要写入输出的表

Returns:

用于构建 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)#

从接收器和表构建构造函数。

Parameters:
  • sink – 用于写入器输出的接收器

  • table – 要写入输出的表

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

设置可选的列名。

Parameters:

names – 列名

Returns:

这是用于链式操作

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

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

Parameters:

val – 用于表示空值的字符串

Returns:

这是用于链式操作

inline csv_writer_options_builder &include_header(bool val)#

启用/禁用将标题写入csv。

Parameters:

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

Returns:

这是用于链式操作

inline csv_writer_options_builder &rows_per_chunk(int val)#

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

Parameters:

val – 每块的行数

Returns:

这是用于链式操作

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

设置用于分隔行的字符。

Parameters:

term – 表示行终止的字符

Returns:

这是用于链式操作

inline csv_writer_options_builder &inter_column_delimiter(char delim)#

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

Parameters:

delim – 用于分隔列值的字符

Returns:

这是用于链式操作

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

设置用于INT8类型中值不等于0的字符串。

Parameters:

val – 用于表示 INT8 类型中不等于 0 的值的字符串

Returns:

这是用于链式操作

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

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

Parameters:

val – 用于表示 INT8 类型中值为 0 的字符串

Returns:

这是用于链式操作

inline csv_writer_options_builder &quoting(quote_style quoting)#

设置写入器的引用样式。

仅支持MINIMAL和NONE。

Parameters:

quoting – 写入器的新引用样式。

Returns:

这是用于链式操作

inline operator csv_writer_options&&()#

一旦构建完成,移动 csv_writer_options 成员。

inline csv_writer_options &&build()#

一旦构建完成,移动 csv_writer_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了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#

返回用于写入器输出的接收器。

Returns:

用于写入器输出的接收器

inline table_view const &get_table() const#

返回将写入输出的表。

Returns:

将写入输出的表格

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

返回元数据信息。

Returns:

元数据信息

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

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

Returns:

用于空条目的字符串

inline compression_type get_compression() const#

返回用于接收器的压缩类型。

Returns:

sink的压缩类型

inline bool is_enabled_include_nulls() const#

是否将空值输出为‘null’。

Returns:

true 如果空值输出为‘null’

inline bool is_enabled_lines() const#

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

Returns:

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

inline size_type get_rows_per_chunk() const#

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

Returns:

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

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

返回用于INT8类型中值不为0的字符串。

Returns:

用于INT8类型中值不为0的字符串

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

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

Returns:

用于INT8类型中值等于0的字符串

inline void set_table(table_view tbl)#

设置要写入输出的表。

Parameters:

tbl – 输出的表格

inline void set_compression(compression_type comptype)#

设置要使用的压缩类型。

Parameters:

comptype – 用于接收器的压缩类型

inline void set_metadata(table_metadata metadata)#

设置元数据。

Parameters:

metadata – 关联的元数据

inline void set_na_rep(std::string val)#

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

Parameters:

val – 用于表示空值的字符串

inline void enable_include_nulls(bool val)#

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

Parameters:

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

inline void enable_lines(bool val)#

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

Parameters:

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

inline void set_rows_per_chunk(size_type val)#

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

Parameters:

val – 每块的行数

inline void set_true_value(std::string val)#

设置用于INT8类型中值不等于0的字符串。

Parameters:

val – 用于表示 INT8 类型中不等于 0 的值的字符串

inline void set_false_value(std::string val)#

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

Parameters:

val – 用于表示 INT8 类型中值为 0 的字符串

公共静态函数

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

创建构建器以创建 json_writer_options

Parameters:
  • sink – 用于写入器输出的接收器

  • table – 要写入输出的表

Returns:

用于构建 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)#

从接收器和表构建构造函数。

Parameters:
  • sink – 用于写入器输出的接收器

  • table – 要写入输出的表

inline json_writer_options_builder &table(table_view tbl)#

设置要写入输出的表。

Parameters:

tbl – 输出的表格

Returns:

这是用于链式操作

inline json_writer_options_builder &compression(compression_type comptype)#

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

Parameters:

comptype – 使用的压缩类型

Returns:

这是用于链式操作

inline json_writer_options_builder &metadata(table_metadata metadata)#

设置可选的元数据(包含列名)。

Parameters:

metadata – 元数据(包含列名)

Returns:

这是用于链式操作

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

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

Parameters:

val – 用于表示空值的字符串

Returns:

这是用于链式操作

inline json_writer_options_builder &include_nulls(bool val)#

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

Parameters:

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

Returns:

这是用于链式操作

inline json_writer_options_builder &lines(bool val)#

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

Parameters:

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

Returns:

这是用于链式操作

inline json_writer_options_builder &rows_per_chunk(int val)#

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

Parameters:

val – 每块的行数

Returns:

这是用于链式操作

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

设置用于INT8类型中值不等于0的字符串。

Parameters:

val – 用于表示 INT8 类型中不等于 0 的值的字符串

Returns:

这是用于链式操作

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

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

Parameters:

val – 用于表示 INT8 类型中值为 0 的字符串

Returns:

这是用于链式操作

inline operator json_writer_options&&()#

一旦构建完成,移动 json_writer_options 成员。

inline json_writer_options &&build()#

一旦构建完成,移动 json_writer_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了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#

返回接收器信息。

Returns:

接收器信息

inline compression_type get_compression() const#

返回压缩类型。

Returns:

压缩类型

inline bool is_enabled_statistics() const#

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

Returns:

true 如果启用了写入列统计信息

inline statistics_freq get_statistics_freq() const#

返回统计信息收集的频率。

Returns:

统计收集的频率

inline auto get_stripe_size_bytes() const#

返回最大条带大小,以字节为单位。

Returns:

最大条带大小,以字节为单位

inline auto get_stripe_size_rows() const#

返回最大条带大小,以行为单位。

Returns:

最大条带大小,以行数为单位

inline auto get_row_index_stride() const#

返回行索引步幅。

Returns:

行索引步长

inline table_view get_table() const#

返回要写入输出的表。

Returns:

要写入输出的表

inline auto const &get_metadata() const#

返回关联的元数据。

Returns:

关联的元数据

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

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

Returns:

键值页脚元数据信息

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

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

Returns:

压缩统计

inline bool get_enable_dictionary_sort() const#

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

Returns:

true 如果字符串字典应该被排序

inline void set_compression(compression_type comp)#

设置压缩类型。

Parameters:

comp – 压缩类型

inline void enable_statistics(statistics_freq val)#

选择统计收集的粒度。

粒度可以设置为:

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

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

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

Parameters:

val – 统计收集的频率

inline void set_stripe_size_bytes(size_t size_bytes)#

设置最大条带大小,以字节为单位。

Parameters:

size_bytes – 要设置的最大条带大小,单位为字节

Throws:

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

inline void set_stripe_size_rows(size_type size_rows)#

设置最大条带大小,以行为单位。

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

Parameters:

size_rows – 最大条带大小,以行数为单位设置

Throws:

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

inline void set_row_index_stride(size_type stride)#

设置行索引步幅。

向下舍入到8的倍数。

Parameters:

stride – 要设置的行索引步长

Throws:

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

inline void set_table(table_view tbl)#

设置要写入输出的表。

Parameters:

tbl – 输出的表格

inline void set_metadata(table_input_metadata meta)#

设置关联的元数据。

Parameters:

meta – 关联的元数据

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

设置元数据。

Parameters:

metadata – 键值对页脚元数据

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

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

Parameters:

comp_stats – 指向在写入后需要更新的压缩统计数据的指针

inline void set_enable_dictionary_sort(bool val)#

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

Parameters:

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

公共静态函数

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

创建构建器以创建 orc_writer_options

Parameters:
  • sink – 用于写入器输出的接收器

  • table – 要写入输出的表

Returns:

用于构建 orc_writer_options 的构建器

class orc_writer_options_builder#
#include <orc.hpp>

构建用于write_orc()的设置。

公共函数

orc_writer_options_builder() = default#

默认构造函数。

由于Cython需要一个默认构造函数来在栈上创建对象,因此已添加此内容。

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

从接收器和表构建构造函数。

Parameters:
  • sink – 用于写入器输出的接收器

  • table – 要写入输出的表

inline orc_writer_options_builder &compression(compression_type comp)#

设置压缩类型。

Parameters:

comp – 使用的压缩类型

Returns:

这是用于链式操作

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行组收集统计信息。

Parameters:

val – 统计收集的级别

Returns:

这是用于链式操作

inline orc_writer_options_builder &stripe_size_bytes(size_t val)#

设置最大条带大小,以字节为单位。

Parameters:

val – 最大条带大小

Returns:

这是用于链式操作

inline orc_writer_options_builder &stripe_size_rows(size_type val)#

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

Parameters:

val – 最大行数

Returns:

这是用于链式操作

inline orc_writer_options_builder &row_index_stride(size_type val)#

设置行索引步幅。

Parameters:

val – 新行索引步幅

Returns:

这是用于链式操作

inline orc_writer_options_builder &table(table_view tbl)#

设置要写入输出的表。

Parameters:

tbl – 输出的表格

Returns:

这是用于链式操作

inline orc_writer_options_builder &metadata(table_input_metadata meta)#

设置关联的元数据。

Parameters:

meta – 关联的元数据

Returns:

这是用于链式操作

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

设置键值页脚元数据。

Parameters:

metadata – 键值对页脚元数据

Returns:

这是用于链式操作

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

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

Parameters:

comp_stats – 指向压缩统计信息的指针,一旦写入器完成,将填充这些统计信息

Returns:

这是用于链式操作

inline orc_writer_options_builder &enable_dictionary_sort(bool val)#

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

Parameters:

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

Returns:

这是用于链式操作

inline operator orc_writer_options&&()#

一旦构建完成,移动 orc_writer_options 成员。

inline orc_writer_options &&build()#

一旦构建完成,移动 orc_writer_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了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#

返回接收器信息。

Returns:

接收器信息

inline compression_type get_compression() const#

返回压缩类型。

Returns:

压缩类型

inline statistics_freq get_statistics_freq() const#

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

Returns:

统计收集的粒度

inline auto get_stripe_size_bytes() const#

返回最大条带大小,以字节为单位。

Returns:

最大条带大小,以字节为单位

inline auto get_stripe_size_rows() const#

返回最大条带大小,以行为单位。

Returns:

最大条带大小,以行数为单位

inline auto get_row_index_stride() const#

返回行索引步幅。

Returns:

行索引步长

inline auto const &get_metadata() const#

返回关联的元数据。

Returns:

关联的元数据

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

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

Returns:

键值页脚元数据信息

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

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

Returns:

压缩统计

inline bool get_enable_dictionary_sort() const#

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

Returns:

true 如果字符串字典应该被排序

inline void set_compression(compression_type comp)#

设置压缩类型。

Parameters:

comp – 使用的压缩类型

inline void enable_statistics(statistics_freq val)#

选择统计收集的粒度。

粒度可以设置为:

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

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

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

Parameters:

val – 统计收集的频率

inline void set_stripe_size_bytes(size_t size_bytes)#

设置最大条带大小,以字节为单位。

Parameters:

size_bytes – 要设置的最大条带大小,单位为字节

Throws:

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

inline void set_stripe_size_rows(size_type size_rows)#

设置最大条带大小,以行为单位。

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

Parameters:

size_rows – 最大条带大小,以行数为单位设置

Throws:

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

inline void set_row_index_stride(size_type stride)#

设置行索引步幅。

向下舍入到8的倍数。

Parameters:

stride – 要设置的行索引步长

Throws:

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

inline void metadata(table_input_metadata meta)#

设置关联的元数据。

Parameters:

meta – 关联的元数据

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

设置键值页脚元数据。

Parameters:

metadata – 键值对页脚元数据

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

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

Parameters:

comp_stats – 指向在写入后需要更新的压缩统计数据的指针

inline void set_enable_dictionary_sort(bool val)#

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

Parameters:

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

公共静态函数

static chunked_orc_writer_options_builder builder(sink_info const &sink)#

创建构建器以创建 chunked_orc_writer_options

Parameters:

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

Returns:

用于构建 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)#

从接收器和表构建构造函数。

Parameters:

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

inline chunked_orc_writer_options_builder &compression(compression_type comp)#

设置压缩类型。

Parameters:

comp – 使用的压缩类型

Returns:

这是用于链式操作

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行组收集统计信息。

Parameters:

val – 统计收集的频率

Returns:

这是用于链式操作

inline chunked_orc_writer_options_builder &stripe_size_bytes(size_t val)#

设置最大条带大小,以字节为单位。

Parameters:

val – 最大条带大小

Returns:

这是用于链式操作

inline chunked_orc_writer_options_builder &stripe_size_rows(size_type val)#

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

Parameters:

val – 最大行数

Returns:

这是用于链式操作

inline chunked_orc_writer_options_builder &row_index_stride(size_type val)#

设置行索引步幅。

Parameters:

val – 新行索引步幅

Returns:

这是用于链式操作

inline chunked_orc_writer_options_builder &metadata(table_input_metadata meta)#

设置关联的元数据。

Parameters:

meta – 关联的元数据

Returns:

这是用于链式操作

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

设置键值页脚元数据。

Parameters:

metadata – 键值对页脚元数据

Returns:

这是用于链式操作

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

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

Parameters:

comp_stats – 指向压缩统计信息的指针,一旦写入器完成,将填充这些统计信息

Returns:

这是用于链式操作

inline chunked_orc_writer_options_builder &enable_dictionary_sort(bool val)#

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

Parameters:

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

Returns:

这是用于链式操作

inline operator chunked_orc_writer_options&&()#

一旦构建完成,移动 chunked_orc_writer_options 成员。

inline chunked_orc_writer_options &&build()#

一旦构建完成,移动 chunked_orc_writer_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了chunked_orc_writer_options对象的右值引用

class orc_chunked_writer#
#include <orc.hpp>

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

write_orc_chunked_path 的目的是允许将任意大/任意数量的行分多次写入 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())#

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

Parameters:
  • options[in] 用于写入表的选项

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

orc_chunked_writer &write(table_view const &table)#

将表写入输出。

Parameters:

table[in] 需要写入的表格

Returns:

返回类对象的引用

void close()#

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

公共成员

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

指向实现写入器类的唯一指针。

struct sorting_column#
#include <parquet.hpp>

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

公共成员

int column_idx = {}#

行组内的叶子列索引

bool is_descending = {false}#

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

bool is_nulls_first = {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#

返回接收器信息。

Returns:

接收器信息

inline compression_type get_compression() const#

返回使用的压缩格式。

Returns:

压缩格式

inline statistics_freq get_stats_level() const#

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

Returns:

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

inline auto const &get_metadata() const#

返回关联的元数据。

Returns:

关联的元数据

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

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

Returns:

键值页脚元数据信息

inline bool is_enabled_int96_timestamps() const#

如果时间戳将被写为INT96,则返回true

Returns:

true 如果时间戳将被写为 INT96

inline auto is_enabled_utc_timestamps() const#

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

Returns:

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

inline auto is_enabled_write_arrow_schema() const#

如果箭头模式将被写入,则返回 true

Returns:

true 如果箭头模式将被写入

inline auto get_row_group_size_bytes() const#

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

Returns:

最大行组大小,以字节为单位

inline auto get_row_group_size_rows() const#

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

Returns:

最大行组大小,以行数为单位

inline auto get_max_page_size_bytes() const#

返回未压缩页面的最大大小,以字节为单位。

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

Returns:

最大未压缩页面大小,以字节为单位

inline auto get_max_page_size_rows() const#

返回最大页面大小,以行为单位。

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

Returns:

最大页面大小,以行数为单位

inline auto get_column_index_truncate_length() const#

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

Returns:

长度最小/最大值将被截断为

inline dictionary_policy get_dictionary_policy() const#

返回字典使用的策略。

Returns:

字典使用政策

inline auto get_max_dictionary_size() const#

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

Returns:

最大字典大小,以字节为单位。

inline auto get_max_page_fragment_size() const#

返回最大页面片段大小,以行为单位。

Returns:

最大页面片段大小,以行数为单位。

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

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

Returns:

压缩统计

inline auto is_enabled_write_v2_headers() const#

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

Returns:

true 如果应该写入V2页面头。

inline auto const &get_sorting_columns() const#

返回排序列。

Returns:

列排序顺序元数据

void set_metadata(table_input_metadata metadata)#

设置元数据。

Parameters:

metadata – 关联的元数据

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

设置元数据。

Parameters:

metadata – 键值对页脚元数据

void set_stats_level(statistics_freq sf)#

设置统计的级别。

Parameters:

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

void set_compression(compression_type compression)#

设置压缩类型。

Parameters:

compression – 使用的压缩类型

void enable_int96_timestamps(bool req)#

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

Parameters:

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

void enable_utc_timestamps(bool val)#

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

Parameters:

val – 布尔值,用于启用/禁用将时间戳写入为UTC。

void enable_write_arrow_schema(bool val)#

设置写入箭头模式的偏好。如果设置为true,则写入箭头模式。

Parameters:

val – 布尔值,用于启用/禁用箭头模式的写入。

void set_row_group_size_bytes(size_t size_bytes)#

设置最大行组大小,单位为字节。

Parameters:

size_bytes – 要设置的最大行组大小,单位为字节

void set_row_group_size_rows(size_type size_rows)#

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

Parameters:

size_rows – 最大行组大小,以行数设置

void set_max_page_size_bytes(size_t size_bytes)#

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

Parameters:

size_bytes – 要设置的最大未压缩页面大小,以字节为单位

void set_max_page_size_rows(size_type size_rows)#

设置最大页面大小,以行为单位。

Parameters:

size_rows – 最大页面大小,以行数设置

void set_column_index_truncate_length(int32_t size_bytes)#

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

Parameters:

size_bytes – 长度最小/最大值将被截断为

void set_dictionary_policy(dictionary_policy policy)#

设置字典使用的策略。

Parameters:

policy – 字典使用的策略

void set_max_dictionary_size(size_t size_bytes)#

设置最大字典大小,单位为字节。

Parameters:

size_bytes – 最大字典大小,以字节为单位

void set_max_page_fragment_size(size_type size_rows)#

设置最大页面片段大小,以行为单位。

Parameters:

size_rows – 最大页面片段大小,以行数为单位。

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

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

Parameters:

comp_stats – 指向在写入后需要更新的压缩统计数据的指针

void enable_write_v2_headers(bool val)#

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

Parameters:

val – 布尔值,用于启用/禁用V2页面头的写入。

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

设置排序列。

Parameters:

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)#

设置元数据。

Parameters:

metadata – 关联的元数据

Returns:

这是用于链式操作

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

设置键值页脚元数据。

Parameters:

metadata – 键值对页脚元数据

Returns:

这是用于链式操作

BuilderT &stats_level(statistics_freq sf)#

设置统计的级别。

Parameters:

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

Returns:

这是用于链式操作

BuilderT &compression(compression_type compression)#

设置压缩类型。

Parameters:

compression – 使用的压缩类型

Returns:

这是用于链式操作

BuilderT &row_group_size_bytes(size_t val)#

设置最大行组大小,单位为字节。

Parameters:

val – 最大行组大小

Returns:

这是用于链式操作

BuilderT &row_group_size_rows(size_type val)#

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

Parameters:

val – 最大行数

Returns:

这是用于链式操作

BuilderT &max_page_size_bytes(size_t val)#

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

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

Parameters:

val – 最大页面大小

Returns:

这是用于链式操作

BuilderT &max_page_size_rows(size_type val)#

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

Parameters:

val – 每页最大行数

Returns:

这是用于链式操作

BuilderT &column_index_truncate_length(int32_t val)#

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

超过此限制的值将被截断,但会进行修改以确保它们仍然是有效的下限和上限。这仅适用于可变长度类型,例如字符串。如果没有合适的截断方式可以产生有效的上限,则最大值不会被截断。

默认值为64。

Parameters:

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

Returns:

这是用于链式操作

BuilderT &dictionary_policy(enum dictionary_policy val)#

设置字典使用的策略。

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

默认值为 dictionary_policy::ADAPTIVE。

Parameters:

val – 字典使用策略

Returns:

这是用于链式操作

BuilderT &max_dictionary_size(size_t val)#

设置最大字典大小,单位为字节。

禁用字典编码,适用于任何字典大小超过此限制的列块。仅在字典策略设置为‘ADAPTIVE’时使用。

默认值为1048576(1MiB)。

Parameters:

val – 最大字典大小

Returns:

这是用于链式操作

BuilderT &max_page_fragment_size(size_type val)#

设置最大页面片段大小,以行为单位。

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

Parameters:

val – 最大页面片段大小

Returns:

这是用于链式操作

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

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

Parameters:

comp_stats – 指向压缩统计信息的指针,一旦写入器完成,将填充这些统计信息

Returns:

这是用于链式操作

BuilderT &int96_timestamps(bool enabled)#

设置是否写入int96时间戳。

Parameters:

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

Returns:

这是用于链式操作

BuilderT &utc_timestamps(bool enabled)#

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

Parameters:

enabled – 布尔值,用于启用/禁用将时间戳写入为UTC。

Returns:

这是用于链式操作

BuilderT &write_arrow_schema(bool enabled)#

如果要写入箭头模式,请设置为true。

Parameters:

enabled – 布尔值,用于启用/禁用箭头模式的写入

Returns:

这是用于链式操作

BuilderT &write_v2_headers(bool enabled)#

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

Parameters:

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

Returns:

这是用于链式操作

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

设置列排序元数据。

Parameters:

sorting_columns – 列排序顺序元数据

Returns:

这是用于链式操作

operator OptionsT&&()#

一旦构建完成,移动选项成员。

OptionsT &&build()#

一旦构建完成,移动选项成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了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

Returns:

表格视图

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

返回分区。

Returns:

分区

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

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

Returns:

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

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

设置分区。

Parameters:

partitions – 输入表的分区,格式为{起始行, 行数}对。如果指定,必须与sink_info中的接收器数量相同。

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

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

Parameters:

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

公共静态函数

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

创建构建器以创建 parquet_writer_options

Parameters:
  • sink – 用于写入器输出的接收器

  • table – 要写入输出的表

Returns:

用于构建 parquet_writer_options 的构建器

static parquet_writer_options_builder builder()#

创建构建器以创建 parquet_writer_options

Returns:

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)#

从接收器和表构建构造函数。

Parameters:
  • sink – 用于写入器输出的接收器

  • table – 要写入输出的表

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

parquet_writer_options中设置分区。

Parameters:

partitions – 输入表的分区,格式为{起始行, 行数}对。如果指定,必须与sink_info中的接收器数量相同。

Returns:

这是用于链式操作

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

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

Parameters:

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

Returns:

这是用于链式操作

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

Parameters:

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

Returns:

用于构建 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)#

从接收器构造函数。

Parameters:

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())#

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

Parameters:
  • options[in] 用于写入表的选项

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

~parquet_chunked_writer()#

默认析构函数。添加此函数以防止泄露详细API。

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

将表写入输出。

Parameters:
  • table[in] 需要写入的表格

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

Throws:
Returns:

返回类对象的引用

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

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

Parameters:

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

Returns:

一个与parquet兼容的blob,仅当提供了column_chunks_file_paths时,包含列表中所有行组的数据,否则为null。

公共成员

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

指向实现写入器类的唯一指针。