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#
-
enumerator NONE#
-
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#
-
enumerator INVALID_TYPE_KIND#
-
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#
-
enumerator INVALID_STREAM_KIND#
-
enum ColumnEncodingKind#
识别列的编码。
值:
-
enumerator INVALID_ENCODING_KIND#
-
enumerator DIRECT#
-
enumerator DICTIONARY#
-
enumerator DIRECT_V2#
-
enumerator DICTIONARY_V2#
-
enumerator INVALID_ENCODING_KIND#
-
enum ProtofType#
识别协议缓冲区中的编码类型。
值:
-
enumerator VARINT#
-
enumerator FIXED64#
-
enumerator FIXEDLEN#
-
enumerator START_GROUP#
-
enumerator END_GROUP#
-
enumerator FIXED32#
-
enumerator INVALID_6#
-
enumerator INVALID_7#
-
enumerator VARINT#
-
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 格式。
-
enumerator NONE#
-
enum class io_type : int32_t#
数据源或目标类型。
值:
-
enumerator FILEPATH#
输入/输出是一个文件路径。
-
enumerator HOST_BUFFER#
输入/输出是主机内存中的一个缓冲区。
-
enumerator DEVICE_BUFFER#
输入/输出是设备内存中的一个缓冲区。
-
enumerator VOID#
输入/输出无关紧要。没有完成任何工作。适用于基准测试。
-
enumerator USER_IMPLEMENTED#
输入/输出由自定义用户类处理。
-
enumerator FILEPATH#
-
enum class quote_style : int32_t#
处理字段数据中的引号时的行为。
值:
-
enumerator MINIMAL#
仅引用包含特殊字符的字段。
-
enumerator ALL#
引用所有字段。
-
enumerator NONNUMERIC#
引用所有非数字字段。
-
enumerator NONE#
永远不要引用字段;禁用引号解析。
-
enumerator MINIMAL#
-
enum statistics_freq#
用于parquet/orc写入器的列统计粒度类型。
值:
-
enumerator STATISTICS_NONE#
没有列统计信息。
-
enumerator STATISTICS_ROWGROUP#
每行组列统计信息。
-
enumerator STATISTICS_PAGE#
每页列统计信息。
-
enumerator STATISTICS_COLUMN#
完整的列和偏移索引。隐含STATISTICS_ROWGROUP。
-
enumerator STATISTICS_NONE#
-
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编码。
-
enumerator USE_DEFAULT#
函数
-
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_names和file_stats成员每个列包含一个元素。stripes_stats每个条带包含一个元素,其中每个元素包含每个列的列统计信息。
-
template<typename T>
struct minmax_statistics# - #include <orc_metadata.hpp>
包含可选最小值和最大值的列统计信息的基类。
包括最小值和最大值的访问器。
-
template<typename T>
struct sum_statistics# - #include <orc_metadata.hpp>
包含可选总和的列统计信息的基类。
包括对总和值的访问器。
-
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>
字符串列的统计信息。
minimum和maximum分别是按字典顺序排列的第一个和最后一个元素。sum是列中元素的总长度。注意:根据 ORC 规范,sum 应该是有符号的,但 pyarrow 使用无符号值。
-
struct bucket_statistics#
- #include <orc_metadata.hpp>
布尔列的统计信息。
count数组包含true值的计数。公共成员
-
std::vector<uint64_t> count#
值为
true的数量
-
std::vector<uint64_t> count#
-
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>
时间戳列的统计信息。
列中的
minimum和maximum最小/最大元素,表示自UNIX纪元以来的毫秒数。minimum_utc和maximum_utc是调整为UTC的相同值。
-
struct column_statistics#
- #include <orc_metadata.hpp>
包含每列的ORC统计信息。
所有列都可以有
number_of_values统计信息。根据数据类型,列还可以有额外的统计信息,可以通过type_specific_stats访问器访问。公共函数
公共成员
-
std::optional<uint64_t> number_of_values#
统计数量
-
std::optional<bool> has_null#
列中有任何空值
-
statistics_type type_specific_stats#
特定类型的统计信息
-
std::optional<uint64_t> number_of_values#
-
struct parsed_orc_statistics#
- #include <orc_metadata.hpp>
保存列名和解析的文件级别和条带级别的统计信息。
column_names和file_stats成员每列包含一个元素。stripes_stats成员每个条带包含一个元素,其中每个元素包含每列的列统计信息。公共成员
-
std::vector<std::string> column_names#
列名
-
std::vector<column_statistics> file_stats#
文件级统计信息
-
std::vector<std::vector<column_statistics>> stripes_stats#
条带级别统计
-
std::vector<std::string> column_names#
-
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:
儿童数量
-
inline orc_column_schema(std::string_view name, orc::TypeKind type, std::vector<orc_column_schema> children)#
-
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:
根列模式 根列模式已从对象中移出(仅限右值)。
-
inline orc_schema(orc_column_schema root_column_schema)#
-
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:
条纹数量
-
inline orc_metadata(orc_schema schema, uint64_t num_rows, size_type num_stripes)#
-
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:
儿童数量
-
explicit parquet_column_schema() = default#
-
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:
根列模式 根列模式已从对象中移出(仅限右值)。
-
explicit parquet_schema() = default#
-
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:
行组元数据的向量,以映射形式表示
-
using key_value_metadata = std::unordered_map<std::string, std::string>#
-
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 压缩输入大小与压缩输出大小之间的比率。
-
writer_compression_statistics() = default#
-
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是否相等
-
inline column_name_info(std::string _name, std::optional<bool> _is_nullable = std::nullopt, std::optional<bool> _is_binary = std::nullopt)#
-
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#
每个文件格式相关的元数据作为键值对。
-
std::vector<column_name_info> schema_info#
-
struct table_with_metadata#
- #include <types.hpp>
包含表格元数据的表格,供io读取器使用,以按值返回元数据。
-
struct host_buffer#
- #include <types.hpp>
主机内存缓冲区的非拥有视图。
- Deprecated:
自23.04起
用于描述
source_info对象中的缓冲区输入。公共函数
-
inline host_buffer(char const *data, size_t size)#
构造一个新的主机缓冲区对象。
- Parameters:
data – 指向缓冲区的指针
size – 缓冲区的大小
-
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:
输入的用户来源
-
inline explicit source_info(std::vector<std::string> const &file_paths)#
-
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:
用户输入的下沉
-
inline sink_info(size_t num_sinks)#
-
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 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:
为该列设置的编码
-
inline column_in_metadata(std::string_view name)#
-
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#
列元数据列表。
-
explicit table_input_metadata(table_view const &table)#
-
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 – 分区中的行数
-
inline partition_info(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:
孩子数量
-
inline reader_column_schema(size_type number_of_children)#
-
using no_statistics = std::monostate#