IO类型#

group io_types

类型定义

using no_statistics = std::monostate#

统计变体的单态类型别名。

using date_statistics = minmax_statistics<int32_t>#

日期(时间)列的统计信息。

using binary_statistics = sum_statistics<int64_t>#

二进制列的统计信息。

sum 是所有元素的总字节数。

using statistics_type = std::variant<no_statistics, integer_statistics, double_statistics, string_statistics, bucket_statistics, decimal_statistics, date_statistics, binary_statistics, timestamp_statistics>#

用于ORC类型特定列统计的变体类型。

变体可以包含任何支持的列统计类型。

枚举

enum CompressionKind#

识别一个压缩算法。

值:

enumerator NONE#
enumerator ZLIB#
enumerator SNAPPY#
enumerator LZO#
enumerator LZ4#
enumerator ZSTD#
enum TypeKind#

识别orc文件中的数据类型。

值:

enumerator INVALID_TYPE_KIND#
enumerator BOOLEAN#
enumerator BYTE#
enumerator SHORT#
enumerator INT#
enumerator LONG#
enumerator FLOAT#
enumerator DOUBLE#
enumerator STRING#
enumerator BINARY#
enumerator TIMESTAMP#
enumerator LIST#
enumerator MAP#
enumerator STRUCT#
enumerator UNION#
enumerator DECIMAL#
enumerator DATE#
enumerator VARCHAR#
enumerator CHAR#
enum StreamKind#

识别数据流的类型。

值:

enumerator INVALID_STREAM_KIND#
enumerator PRESENT#
enumerator DATA#
enumerator LENGTH#
enumerator DICTIONARY_DATA#
enumerator DICTIONARY_COUNT#
enumerator SECONDARY#
enumerator ROW_INDEX#
enumerator BLOOM_FILTER#
enumerator BLOOM_FILTER_UTF8#
enum ColumnEncodingKind#

识别列的编码。

值:

enumerator INVALID_ENCODING_KIND#
enumerator DIRECT#
enumerator DICTIONARY#
enumerator DIRECT_V2#
enumerator DICTIONARY_V2#
enum ProtofType#

识别协议缓冲区中的编码类型。

值:

enumerator VARINT#
enumerator FIXED64#
enumerator FIXEDLEN#
enumerator START_GROUP#
enumerator END_GROUP#
enumerator FIXED32#
enumerator INVALID_6#
enumerator INVALID_7#
enum class compression_type : int32_t#

压缩算法。

值:

enumerator NONE#

无压缩。

enumerator AUTO#

自动检测或选择压缩格式。

enumerator SNAPPY#

Snappy格式,使用面向字节的LZ77。

enumerator GZIP#

GZIP格式,使用DEFLATE算法。

enumerator BZIP2#

BZIP2 格式,使用 Burrows-Wheeler 变换。

enumerator BROTLI#

BROTLI格式,使用LZ77 + Huffman + 二阶上下文建模。

enumerator ZIP#

ZIP格式,使用DEFLATE算法。

enumerator XZ#

XZ格式,使用LZMA(2)算法。

enumerator ZLIB#

ZLIB格式,使用DEFLATE算法。

enumerator LZ4#

LZ4格式,使用LZ77。

enumerator LZO#

Lempel–Ziv–Oberhumer 格式。

enumerator ZSTD#

Zstandard 格式。

enum class io_type : int32_t#

数据源或目标类型。

值:

enumerator FILEPATH#

输入/输出是一个文件路径。

enumerator HOST_BUFFER#

输入/输出是主机内存中的一个缓冲区。

enumerator DEVICE_BUFFER#

输入/输出是设备内存中的一个缓冲区。

enumerator VOID#

输入/输出无关紧要。没有完成任何工作。适用于基准测试。

enumerator USER_IMPLEMENTED#

输入/输出由自定义用户类处理。

enum class quote_style : int32_t#

处理字段数据中的引号时的行为。

值:

enumerator MINIMAL#

仅引用包含特殊字符的字段。

enumerator ALL#

引用所有字段。

enumerator NONNUMERIC#

引用所有非数字字段。

enumerator NONE#

永远不要引用字段;禁用引号解析。

enum statistics_freq#

用于parquet/orc写入器的列统计粒度类型。

值:

enumerator STATISTICS_NONE#

没有列统计信息。

enumerator STATISTICS_ROWGROUP#

每行组列统计信息。

enumerator STATISTICS_PAGE#

每页列统计信息。

enumerator STATISTICS_COLUMN#

完整的列和偏移索引。隐含STATISTICS_ROWGROUP。

enum class column_encoding : int32_t#

用于column_in_metadata::set_encoding()的有效编码

值:

enumerator USE_DEFAULT#

未请求编码,使用默认编码。

enumerator DICTIONARY#

使用字典编码。

enumerator PLAIN#

使用纯文本编码。

enumerator DELTA_BINARY_PACKED#

使用DELTA_BINARY_PACKED编码(仅适用于整数列)

enumerator DELTA_LENGTH_BYTE_ARRAY#

使用DELTA_LENGTH_BYTE_ARRAY编码(仅适用于BYTE_ARRAY列)

enumerator DELTA_BYTE_ARRAY#

使用DELTA_BYTE_ARRAY编码(仅适用于BYTE_ARRAY和FIXED_LEN_BYTE_ARRAY列)

enumerator BYTE_STREAM_SPLIT#

使用BYTE_STREAM_SPLIT编码(适用于所有固定宽度类型)

enumerator DIRECT#

使用DIRECT编码。

enumerator DIRECT_V2#

使用 DIRECT_V2 编码。

enumerator DICTIONARY_V2#

使用DICTIONARY_V2编码。

enum dictionary_policy#

控制用于parquet写入器的字典编码的使用。

值:

enumerator NEVER#

永远不要使用字典编码。

enumerator ADAPTIVE#

当不会影响压缩时使用字典。

enumerator ALWAYS#

使用字典,不考虑对压缩的影响。

函数

template<typename T>
inline constexpr auto is_byte_like_type()#

如果类型是字节类型的,则返回 true,这意味着可以合理地将其作为指向字节的指针传递。

Template Parameters:

T – 表示类型

Returns:

true 如果该类型被视为字节类型

struct raw_orc_statistics#
#include <orc_metadata.hpp>

保存列名和包含原始文件级别和条带级别统计信息的缓冲区。

可以使用Protobuf解析器解析缓冲区。或者,使用parsed_orc_statistics将统计信息解析为libcudf表示形式。

column_namesfile_stats 成员每个列包含一个元素。stripes_stats 每个条带包含一个元素,其中每个元素包含每个列的列统计信息。

公共成员

std::vector<std::string> column_names#

列名。

std::vector<std::string> file_stats#

每列的文件级统计信息。

std::vector<std::vector<std::string>> stripes_stats#

每列的条带级别统计信息。

template<typename T>
struct minmax_statistics#
#include <orc_metadata.hpp>

包含可选最小值和最大值的列统计信息的基类。

包括最小值和最大值的访问器。

公共成员

std::optional<T> minimum#

最小值。

std::optional<T> maximum#

最大值。

template<typename T>
struct sum_statistics#
#include <orc_metadata.hpp>

包含可选总和的列统计信息的基类。

包括对总和值的访问器。

公共成员

std::optional<T> sum#

列中值的总和。

struct integer_statistics : public cudf::io::minmax_statistics<int64_t>, public cudf::io::sum_statistics<int64_t>#
#include <orc_metadata.hpp>

整型列的统计信息。

struct double_statistics : public cudf::io::minmax_statistics<double>, public cudf::io::sum_statistics<double>#
#include <orc_metadata.hpp>

浮点数列的统计信息。

struct string_statistics : public cudf::io::minmax_statistics<std::string>, public cudf::io::sum_statistics<int64_t>#
#include <orc_metadata.hpp>

字符串列的统计信息。

minimummaximum 分别是按字典顺序排列的第一个和最后一个元素。sum 是列中元素的总长度。注意:根据 ORC 规范,sum 应该是有符号的,但 pyarrow 使用无符号值。

struct bucket_statistics#
#include <orc_metadata.hpp>

布尔列的统计信息。

count 数组包含 true 值的计数。

公共成员

std::vector<uint64_t> count#

值为 true 的数量

struct decimal_statistics : public cudf::io::minmax_statistics<std::string>, public cudf::io::sum_statistics<std::string>#
#include <orc_metadata.hpp>

十进制列的统计信息。

struct timestamp_statistics : public cudf::io::minmax_statistics<int64_t>#
#include <orc_metadata.hpp>

时间戳列的统计信息。

列中的minimummaximum最小/最大元素,表示自UNIX纪元以来的毫秒数。minimum_utcmaximum_utc是调整为UTC的相同值。

公共成员

std::optional<int64_t> minimum_utc#

最小时间(以毫秒为单位)

std::optional<int64_t> maximum_utc#

最大毫秒数

std::optional<uint32_t> minimum_nanos#

最小值的纳秒部分

std::optional<uint32_t> maximum_nanos#

最大值的纳秒部分

struct column_statistics#
#include <orc_metadata.hpp>

包含每列的ORC统计信息。

所有列都可以有number_of_values统计信息。根据数据类型,列还可以有额外的统计信息,可以通过type_specific_stats访问器访问。

公共函数

column_statistics(orc::column_statistics &&detail_statistics)#

构建一个新的列统计对象。

Parameters:

detail_statistics – 用于初始化对象的统计信息

公共成员

std::optional<uint64_t> number_of_values#

统计数量

std::optional<bool> has_null#

列中有任何空值

statistics_type type_specific_stats#

特定类型的统计信息

struct parsed_orc_statistics#
#include <orc_metadata.hpp>

保存列名和解析的文件级别和条带级别的统计信息。

column_namesfile_stats 成员每列包含一个元素。stripes_stats 成员每个条带包含一个元素,其中每个元素包含每列的列统计信息。

公共成员

std::vector<std::string> column_names#

列名

std::vector<column_statistics> file_stats#

文件级统计信息

std::vector<std::vector<column_statistics>> stripes_stats#

条带级别统计

struct orc_column_schema#
#include <orc_metadata.hpp>

ORC列的架构,包括嵌套列。

公共函数

inline orc_column_schema(std::string_view name, orc::TypeKind type, std::vector<orc_column_schema> children)#

构造函数

Parameters:
  • name – 列名

  • type – ORC 类型

  • children – 子列(对于非嵌套类型为空)

inline auto name() const#

返回ORC列名;可以为空。

Returns:

列名

inline auto type_kind() const#

返回列的ORC类型。

Returns:

列 ORC 类型

inline auto const &children() const &#

返回所有子列的架构。

Returns:

子模式

inline auto children() &&#

返回所有子列的架构。

Returns:

子模式 子数组被移出对象(仅限右值)。

inline auto const &child(int idx) const &#

返回具有给定索引的子节点的模式。

Parameters:

idx – 子索引

Returns:

子模式

inline auto child(int idx) &&#

返回给定索引的子节点的模式。

Parameters:

idx – 子索引

Returns:

子模式 Child 被移出对象(仅限右值)。

inline auto num_children() const#

返回子列的数量。

Returns:

儿童数量

struct orc_schema#
#include <orc_metadata.hpp>

ORC文件的模式。

公共函数

inline orc_schema(orc_column_schema root_column_schema)#

构造函数

Parameters:

root_column_schema – 根列

inline auto const &root() const &#

返回包含所有列作为字段的结构列的架构。

Returns:

根列模式

inline auto root() &&#

返回包含所有列作为字段的结构列的架构。

Returns:

根列模式 根列模式已从对象中移出(仅限右值)。

class orc_metadata#
#include <orc_metadata.hpp>

关于ORC文件内容的信息。

公共函数

inline orc_metadata(orc_schema schema, uint64_t num_rows, size_type num_stripes)#

构造函数

Parameters:
  • schema – ORC 模式

  • num_rows – 行数

  • num_stripes – 条纹数量

inline auto const &schema() const#

返回ORC模式。

Returns:

ORC 模式 根列中的行数;对于嵌套列可能会有所不同

inline auto num_rows() const#

返回根列的行数。

如果文件包含列表列,嵌套列可以有不同的行数。

Returns:

行数

inline auto num_stripes() const#

返回文件中的条带数量。

Returns:

条纹数量

struct parquet_column_schema#
#include <parquet_metadata.hpp>

Parquet列的架构,包括嵌套列。

公共函数

explicit parquet_column_schema() = default#

默认构造函数。

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

inline parquet_column_schema(std::string_view name, parquet::TypeKind type, std::vector<parquet_column_schema> children)#

构造函数

Parameters:
  • name – 列名

  • type – parquet 类型

  • children – 子列(对于非嵌套类型为空)

inline auto name() const#

返回parquet列名;可以为空。

Returns:

列名

inline auto type_kind() const#

返回列的parquet类型。

Returns:

列 Parquet 类型

inline auto const &children() const &#

返回所有子列的架构。

Returns:

子模式

inline auto children() &&#

返回所有子列的架构。

Returns:

子模式 子数组被移出对象(仅限右值)。

inline auto const &child(int idx) const &#

返回给定索引的子节点的模式。

Parameters:

idx – 子索引

Returns:

子模式

inline auto child(int idx) &&#

返回给定索引的子节点的模式。

Parameters:

idx – 子索引

Returns:

子模式 Child 被移出对象(仅限右值)。

inline auto num_children() const#

返回子列的数量。

Returns:

儿童数量

struct parquet_schema#
#include <parquet_metadata.hpp>

Parquet文件的模式。

公共函数

explicit parquet_schema() = default#

默认构造函数。

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

inline parquet_schema(parquet_column_schema root_column_schema)#

构造函数

Parameters:

root_column_schema – 根列

inline auto const &root() const &#

返回包含所有列作为字段的结构列的架构。

Returns:

根列模式

inline auto root() &&#

返回包含所有列作为字段的结构列的架构。

Returns:

根列模式 根列模式已从对象中移出(仅限右值)。

class parquet_metadata#
#include <parquet_metadata.hpp>

关于parquet文件内容的信息。

公共类型

using key_value_metadata = std::unordered_map<std::string, std::string>#

文件页脚中的键值元数据。

using row_group_metadata = std::unordered_map<std::string, int64_t>#

从每个RowGroup元素中获取行组元数据。

公共函数

explicit parquet_metadata() = default#

默认构造函数。

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

inline parquet_metadata(parquet_schema schema, int64_t num_rows, size_type num_rowgroups, key_value_metadata file_metadata, std::vector<row_group_metadata> rg_metadata)#

构造函数

Parameters:
  • schema – parquet 模式

  • num_rows – 行数

  • num_rowgroups – 行组的数量

  • file_metadata – 文件页脚中的键值元数据

  • rg_metadata – 包含每个行组元数据的向量映射

inline auto const &schema() const#

返回parquet模式。

Returns:

parquet 模式

inline auto num_rows() const#

返回根列的行数。

如果文件包含列表列,嵌套列可以有不同的行数。

Returns:

行数

inline auto num_rowgroups() const#

返回文件中的行组数量。

Returns:

行组数量

inline auto const &metadata() const#

返回文件页脚中的键值元数据。

Returns:

键值元数据作为映射

inline auto const &rowgroup_metadata() const#

返回文件页脚中的行组元数据。

Returns:

行组元数据的向量,以映射形式表示

class writer_compression_statistics#
#include <types.hpp>

关于写入器执行的压缩统计信息。

公共函数

writer_compression_statistics() = default#

默认构造函数。

inline writer_compression_statistics(size_t num_compressed_bytes, size_t num_failed_bytes, size_t num_skipped_bytes, size_t num_compressed_output_bytes)#

带有初始值的构造函数。

Parameters:
  • num_compressed_bytes – 成功压缩的字节数

  • num_failed_bytes – 压缩失败的字节数

  • num_skipped_bytes – 压缩过程中跳过的字节数

  • num_compressed_output_bytes – 压缩输出中的字节数

inline writer_compression_statistics &operator+=(writer_compression_statistics const &other) noexcept#

添加来自另一个 writer_compression_statistics 对象的值。

Parameters:

其他 – 另一个 writer_compression_statistics 对象

Returns:

writer_compression_statistics& 对此对象的引用

inline auto num_compressed_bytes() const noexcept#

返回成功压缩的块中的字节数。

这是实际压缩的字节数,而不是压缩输出的大小。

Returns:

size_t 成功压缩的字节数

inline auto num_failed_bytes() const noexcept#

返回未能压缩的块中的字节数。

Returns:

size_t 压缩失败的字节数

inline auto num_skipped_bytes() const noexcept#

返回在压缩过程中跳过的块中的字节数。

Returns:

size_t 压缩过程中跳过的字节数

inline auto num_total_input_bytes() const noexcept#

返回压缩输入的总大小。

Returns:

size_t 压缩输入的总大小

inline auto compression_ratio() const noexcept#

返回成功压缩块的压缩比。

如果没有成功压缩的块,则返回 nan。

Returns:

double 压缩输入大小与压缩输出大小之间的比率。

struct column_name_info#
#include <types.hpp>

输出列的详细名称(以及可选的空值性)信息。

子元素的层次结构与输出cudf列中的子元素层次结构相匹配。

公共函数

inline column_name_info(std::string _name, std::optional<bool> _is_nullable = std::nullopt, std::optional<bool> _is_binary = std::nullopt)#

构造一个带有名称、可选的可空性且没有子项的列名信息。

Parameters:
  • _name – 列名

  • _is_nullable – 如果列可为空则为True

  • _is_binary – 如果列是二进制数据则为True

inline bool operator==(column_name_info const &rhs) const#

比较两个列名信息结构是否相等。

Parameters:

rhs – 用于比较的列名信息结构

Returns:

布尔值,表示此对象与rhs是否相等

公共成员

std::string name#

列名。

std::optional<bool> is_nullable#

列的可空性。

std::optional<bool> is_binary#

列是二进制的(即不是列表)

std::optional<int32_t> type_length#

数据的字节宽度(用于固定长度数据)

std::vector<column_name_info> children#

子列名称。

struct table_metadata#
#include <types.hpp>

IO读取器返回的表元数据。

公共成员

std::vector<column_name_info> schema_info#

整个输出层次结构的详细名称信息。

std::vector<size_t> num_rows_per_source#

从每个数据源读取的行数。目前仅在没有使用AST过滤器的情况下为Parquet读取器计算。否则为空向量。

std::map<std::string, std::string> user_data#

第一个输入文件的格式相关元数据,以键值对形式表示(已弃用)

std::vector<std::unordered_map<std::string, std::string>> per_file_user_data#

每个文件格式相关的元数据作为键值对。

struct table_with_metadata#
#include <types.hpp>

包含表格元数据的表格,供io读取器使用,以按值返回元数据。

公共成员

std::unique_ptr<table> tbl#

表格。

table_metadata metadata#

表元数据。

struct host_buffer#
#include <types.hpp>

主机内存缓冲区的非拥有视图。

Deprecated:

自23.04起

用于描述source_info对象中的缓冲区输入。

公共函数

inline host_buffer(char const *data, size_t size)#

构造一个新的主机缓冲区对象。

Parameters:
  • data – 指向缓冲区的指针

  • size – 缓冲区的大小

公共成员

char const *data = nullptr#

指向缓冲区的指针。

size_t size = 0#

缓冲区的大小。

struct source_info#
#include <types.hpp>

读取接口的源信息。

公共函数

inline explicit source_info(std::vector<std::string> const &file_paths)#

为多个文件构建一个新的源信息对象。

Parameters:

file_paths – 输入文件路径

inline explicit source_info(std::string const &file_path)#

为单个文件构造一个新的源信息对象。

Parameters:

file_path – 单个输入文件

inline explicit source_info(std::vector<host_buffer> const &host_buffers)#

为主机内存中的多个缓冲区构造一个新的源信息对象。

Deprecated:

自23.04起

Parameters:

host_buffers – 主机内存中的输入缓冲区

inline explicit source_info(char const *host_data, size_t size)#

为单个缓冲区构造一个新的源信息对象。

Deprecated:

自23.04起

Parameters:
  • host_data – 主机内存中的输入缓冲区

  • size – 缓冲区的大小

template<typename T>
inline explicit source_info(cudf::host_span<cudf::host_span<T>> const host_buffers)#

为主机内存中的多个缓冲区构造一个新的源信息对象。

Parameters:

host_buffers – 主机内存中的输入缓冲区

template<typename T>
inline explicit source_info(cudf::host_span<T> host_data)#

为单个缓冲区构造一个新的源信息对象。

Parameters:

host_data – 主机内存中的输入缓冲区

inline explicit source_info(cudf::host_span<cudf::device_span<std::byte const>> device_buffers)#

为设备内存中的多个缓冲区构造一个新的源信息对象。

Parameters:

device_buffers – 设备内存中的输入缓冲区

inline explicit source_info(cudf::device_span<std::byte const> d_buffer)#

从设备缓冲区构造一个新的源信息对象。

Parameters:

d_buffer – 设备内存中的输入缓冲区

inline explicit source_info(std::vector<cudf::io::datasource*> const &sources)#

为多个用户实现的源构造一个新的源信息对象。

Parameters:

sources – 用户实现的输入源

inline explicit source_info(cudf::io::datasource *source)#

为单个用户实现的源构造一个新的源信息对象。

Parameters:

source – 单个用户实现的输入源

inline auto type() const#

获取输入的类型。

Returns:

输入的类型

inline auto const &filepaths() const#

获取输入的文件的路径。

Returns:

输入文件的路径

inline auto const &host_buffers() const#

获取输入的主机缓冲区。

Returns:

输入的主机缓冲区

inline auto const &device_buffers() const#

获取输入的设备缓冲区。

Returns:

输入设备的缓冲区

inline auto const &user_sources() const#

获取输入的用户来源。

Returns:

输入的用户来源

struct sink_info#
#include <types.hpp>

写入接口的目标信息。

公共函数

inline sink_info(size_t num_sinks)#

构造一个新的接收器信息对象。

Parameters:

num_sinks – 接收器数量

inline explicit sink_info(std::vector<std::string> const &file_paths)#

为多个文件构建一个新的接收器信息对象。

Parameters:

file_paths – 输出文件路径

inline explicit sink_info(std::string const &file_path)#

为单个文件构造一个新的接收器信息对象。

Parameters:

file_path – 单个输出文件路径

inline explicit sink_info(std::vector<std::vector<char>*> const &buffers)#

为多个主机缓冲区构造一个新的接收器信息对象。

Parameters:

buffers – 输出主机缓冲区

inline explicit sink_info(std::vector<char> *buffer)#

为单个主机缓冲区构造一个新的接收器信息对象。

Parameters:

buffer – 单输出主机缓冲区

inline explicit sink_info(std::vector<cudf::io::data_sink*> const &user_sinks)#

为多个用户实现的接收器构造一个新的接收器信息对象。

Parameters:

user_sinks – 输出用户实现的接收器

inline explicit sink_info(class cudf::io::data_sink *user_sink)#

为单个用户实现的接收器构造一个新的接收器信息对象。

Parameters:

user_sink – 单输出用户实现的接收器

inline auto type() const#

获取输入的类型。

Returns:

输入的类型

inline auto num_sinks() const#

获取接收器的数量。

Returns:

接收器的数量

inline auto const &filepaths() const#

获取输入的文件的路径。

Returns:

输入文件的路径

inline auto const &buffers() const#

获取输入的主机缓冲区。

Returns:

输入的主机缓冲区

inline auto const &user_sinks() const#

获取输入的用户接收器。

Returns:

用户输入的下沉

class column_in_metadata#
#include <types.hpp>

列的元数据。

公共函数

inline column_in_metadata(std::string_view name)#

在元数据对象中构造一个新列。

Parameters:

name – 列名

inline column_in_metadata &add_child(column_in_metadata const &child)#

添加此列的子元数据。

Parameters:

child – 要添加的此列的子元数据

Returns:

这是用于链式操作

inline column_in_metadata &set_name(std::string const &name) noexcept#

设置此列的名称。

Parameters:

name – 列的名称

Returns:

这是用于链式操作

inline column_in_metadata &set_nullability(bool nullable) noexcept#

设置此列的可空性。

Parameters:

nullable – 此列是否可为空

Returns:

这是用于链式操作

inline column_in_metadata &set_list_column_as_map() noexcept#

指定此列表列应在写入的文件中编码为映射。

该列必须具有结构 list>。否则此选项无效

Returns:

这是用于链式操作

inline column_in_metadata &set_int96_timestamps(bool req) noexcept#

指定是否应使用已弃用的int96物理类型对此时间戳列进行编码。仅对以下列类型有效:timestamp_s、timestamp_ms、timestamp_us、timestamp_ns。

Parameters:

req – True = 使用 int96 物理类型。 False = 使用 int64 物理类型

Returns:

这是用于链式操作

inline column_in_metadata &set_decimal_precision(uint8_t precision) noexcept#

设置此列的小数精度。仅当此列为小数(定点)类型时有效。

Parameters:

precision – 为此十进制列设置的整数精度

Returns:

这是用于链式操作

inline column_in_metadata &set_type_length(int32_t length) noexcept#

设置列的数据长度。仅当此列是固定长度字节数组时有效。

Parameters:

length – 设置此列的数据长度

Returns:

这是用于链式操作

inline column_in_metadata &set_parquet_field_id(int32_t field_id) noexcept#

设置此列的parquet字段ID。

Parameters:

field_id – 要设置的parquet字段ID

Returns:

这是用于链式操作

inline column_in_metadata &set_output_as_binary(bool binary) noexcept#

指定此列是否应作为二进制或字符串数据写入。仅对以下列类型有效:字符串。

Parameters:

binary – True = 使用二进制数据类型。False = 使用字符串数据类型

Returns:

这是用于链式操作

inline column_in_metadata &set_skip_compression(bool skip) noexcept#

指定无论为文件指定的压缩编解码器如何,此列是否不应压缩。

Parameters:

skip – 如果 true 则不压缩此列

Returns:

这是用于链式操作

inline column_in_metadata &set_encoding(column_encoding encoding) noexcept#

设置用于此列的编码。

这只是一个请求,编码器可能仍然会根据资源限制选择使用不同的编码。使用在parquet_encoding结构体中定义的常量。

Parameters:

encoding – 使用的编码

Returns:

这是用于链式操作

inline column_in_metadata &child(size_type i) noexcept#

获取此列的子列的引用。

Parameters:

i – 要获取的子元素的索引

Returns:

这是用于链式操作

inline column_in_metadata const &child(size_type i) const noexcept#

获取此列的子列的常量引用。

Parameters:

i – 要获取的子元素的索引

Returns:

这是用于链式操作

inline std::string get_name() const noexcept#

获取此列的名称。

Returns:

此列的名称

inline bool is_nullability_defined() const noexcept#

获取是否已明确设置此列的可空性。

Returns:

布尔值,指示是否已为此列显式设置可空性

inline bool nullable() const#

获取此列显式设置的可空性。

Throws:

std::bad_optional_access – 如果未明确为此列定义可空性。请先使用 is_nullability_defined() 进行检查。

Returns:

布尔值,指示此列是否可为空

inline bool is_map() const noexcept#

如果这是列表列的元数据,返回它是否将被编码为映射。

Returns:

布尔值,指示此列是否应编码为映射

inline bool is_enabled_int96_timestamps() const noexcept#

获取是否使用已弃用的int96物理类型编码此时间戳列。

Returns:

布尔值,指示是否使用已弃用的int96物理类型编码此时间戳列

inline bool is_decimal_precision_set() const noexcept#

获取是否已为此十进制列设置了精度。

Returns:

布尔值,指示是否已为此十进制列设置了精度

inline uint8_t get_decimal_precision() const#

获取为此列设置的小数精度。

Throws:

std::bad_optional_access – 如果未为此列设置小数精度。请先使用 is_decimal_precision_set() 进行检查。

Returns:

为该列设置的小数精度

inline bool is_type_length_set() const noexcept#

获取此列的类型长度是否已设置。

Returns:

布尔值,指示是否已为此列设置类型长度

inline uint8_t get_type_length() const#

获取为此列设置的类型长度。

Throws:

std::bad_optional_access – 如果未为此列设置类型长度。请先使用 is_type_length_set() 进行检查。

Returns:

为该列设置的小数精度

inline bool is_parquet_field_id_set() const noexcept#

获取是否已为此列设置了parquet字段ID。

Returns:

布尔值,指示是否已为此列设置了parquet字段ID

inline int32_t get_parquet_field_id() const#

获取为此列设置的parquet字段ID。

Throws:

std::bad_optional_access – 如果未为此列设置parquet字段ID。请先使用is_parquet_field_id_set()进行检查。

Returns:

为该列设置的parquet字段ID

inline size_type num_children() const noexcept#

获取此列的子项数量。

Returns:

此列的子项数量

inline bool is_enabled_output_as_binary() const noexcept#

获取是否将此列编码为二进制或字符串数据。

Returns:

布尔值,指示是否将此列编码为二进制数据

inline bool is_enabled_skip_compression() const noexcept#

获取是否跳过压缩此列。

Returns:

布尔值,指示是否跳过此列的压缩

inline column_encoding get_encoding() const#

获取为此列设置的编码。

Returns:

为该列设置的编码

class table_input_metadata#
#include <types.hpp>

表的元数据。

公共函数

explicit table_input_metadata(table_view const &table)#

table_view构造一个新的table_input_metadata

构建的 table_input_metadata 与传递的 table_view 具有相同的结构

Parameters:

table – 为 table_view 构建元数据

explicit table_input_metadata(table_metadata const &metadata)#

table_metadata对象构造一个新的table_input_metadata

构建的 table_input_metadata 具有与传递的 table_metadata 相同的结构、列名和可空性。

Parameters:

metadata – 用于构造 table_intput_metadata 的 table_metadata

公共成员

std::vector<column_in_metadata> column_metadata#

列元数据列表。

struct partition_info#
#include <types.hpp>

写入分区数据集时使用的信息。

此信息定义了要写入文件的输入表的切片。在分区数据集写入中,一个partition_info结构体定义一个分区,并对应一个输出文件。

公共函数

inline partition_info(size_type start_row, size_type num_rows)#

构造一个新的 partition_info

Parameters:
  • start_row – 分区的起始行

  • num_rows – 分区中的行数

公共成员

size_type start_row#

分区的起始行。

size_type num_rows#

分区中的行数。

class reader_column_schema#
#include <types.hpp>

读取器的模式元素

公共函数

inline reader_column_schema(size_type number_of_children)#

构建一个新的读取器列模式对象。

Parameters:

number_of_children – 默认构造的子模式对象的数量

inline reader_column_schema(host_span<reader_column_schema> const &child_span)#

使用定义子元素的跨度构造一个新的读取器列模式对象。

Parameters:

child_span – 子模式对象的跨度

inline reader_column_schema &add_child(reader_column_schema const &child)#

添加此列的子元数据。

Parameters:

child – 要添加的此列的子元数据

Returns:

这是用于链式操作

inline reader_column_schema &child(size_type i)#

获取此列的子列的引用。

Parameters:

i – 要获取的子元素的索引

Returns:

这是用于链式操作

inline reader_column_schema const &child(size_type i) const#

获取此列的子列的常量引用。

Parameters:

i – 要获取的子元素的索引

Returns:

这是用于链式操作

inline reader_column_schema &set_convert_binary_to_strings(bool convert_to_string)#

指定此列是否应作为二进制或字符串数据写入。仅对以下列类型有效:string, list

Parameters:

convert_to_string – True = 将二进制转换为字符串 False = 返回二进制

Returns:

这是用于链式操作

inline reader_column_schema &set_type_length(int32_t type_length)#

设置固定长度数据的长度。

Parameters:

type_length – 数据类型的大小(以字节为单位)

Returns:

这是用于链式操作

inline bool is_enabled_convert_binary_to_strings() const#

获取是否将此列编码为二进制或字符串数据。

Returns:

布尔值,指示是否将此列编码为二进制数据

inline int32_t get_type_length() const#

获取此固定长度数据的字节长度。

Returns:

数据类型的字节长度

inline size_t get_num_children() const#

获取子对象的数量。

Returns:

孩子数量