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 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 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。
MINIMAL:包含特殊字符(如行分隔符、字段分隔符/引用符)的字符串列将被引用。
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_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)#
设置写入器的引用风格。
注意:仅支持以下引用风格
MINIMAL:包含特殊字符(如行分隔符/字段分隔符/引用符)的字符串列将被引用。
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 的构建器
-
explicit csv_writer_options() = default#
-
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 "ing(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
对象的右值引用
-
explicit csv_writer_options_builder() = default#
-
class json_writer_options#
- #include <json.hpp>
用于
write_json()
的设置。公共函数
-
explicit json_writer_options() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
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 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_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 的构建器
-
explicit json_writer_options() = default#
-
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
对象的右值引用
-
explicit json_writer_options_builder() = default#
-
class orc_writer_options#
- #include <orc.hpp>
用于
write_orc()
的设置。公共函数
-
explicit orc_writer_options() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
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 – 键值页脚元数据
设置指向输出压缩统计信息的指针。
- 参数:
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
的构建器
-
explicit orc_writer_options() = default#
-
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
设置指向输出压缩统计信息的指针。
- 参数:
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
对象的右值引用
-
orc_writer_options_builder() = default#
-
class chunked_orc_writer_options#
- #include <orc.hpp>
用于
write_orc_chunked()
的设置。公共函数
-
explicit chunked_orc_writer_options() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
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 – 键值页脚元数据
设置指向输出压缩统计信息的指针。
- 参数:
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 的构建器
-
explicit chunked_orc_writer_options() = default#
-
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
设置指向输出压缩统计信息的指针。
- 参数:
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
对象的右值引用
-
chunked_orc_writer_options_builder() = default#
-
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()#
完成块状/流式写入过程。
-
orc_chunked_writer()#
-
struct sorting_column#
- #include <parquet.hpp>
用于描述列排序元数据的结构体。
-
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 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** – 最大页片段大小(以行为单位)。
设置指向输出压缩统计信息的指针。
- 参数:
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** – 列排序顺序元数据
-
parquet_writer_options_base() = default#
-
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 &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
设置指向输出压缩统计信息的指针。
- 参数:
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
-
OptionsT &&build()#
构建后移动 options 成员。
添加此函数是因为 Cython 不支持转换运算符重载。
- 返回:
构建的
parquet_writer_options
对象的右值引用
-
explicit parquet_writer_options_builder_base() = default#
-
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() = default#
-
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
-
explicit parquet_writer_options_builder() = default#
-
class chunked_parquet_writer_options : public cudf::io::parquet_writer_options_base#
- #include <parquet.hpp>
公共函数
-
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
的构建器
-
chunked_parquet_writer_options() = default#
-
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
的类。
-
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)数量大小相同。
- 抛出:
cudf::logic_error – 如果分区数量与接收器(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。
-
parquet_chunked_writer()#
-
void write_csv(csv_writer_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream())#