pub(crate) enum Codec {
Show 29 variants
Null,
Boolean,
Int32,
Int64,
Float32,
Float64,
Binary,
Utf8,
Utf8View,
Date32,
TimeMillis,
TimeMicros,
TimestampMillis(bool),
TimestampMicros(bool),
TimestampNanos(bool),
Fixed(i32),
Decimal(usize, Option<usize>, Option<usize>),
Uuid,
Enum(Arc<[String]>),
List(Arc<AvroDataType>),
Struct(Arc<[AvroField]>),
Map(Arc<AvroDataType>),
Interval,
Union(Arc<[AvroDataType]>, UnionFields, UnionMode),
DurationNanos,
DurationMicros,
DurationMillis,
DurationSeconds,
RunEndEncoded(Arc<AvroDataType>, u8),
}变体§
Null
表示 Avro null 类型,映射到 Arrow 的 Null 数据类型
Boolean
表示 Avro boolean 类型,映射到 Arrow 的 Boolean 数据类型
Int32
表示 Avro int 类型,映射到 Arrow 的 Int32 数据类型
Int64
表示 Avro long 类型,映射到 Arrow 的 Int64 数据类型
Float32
表示 Avro float 类型,映射到 Arrow 的 Float32 数据类型
Float64
表示 Avro double 类型,映射到 Arrow 的 Float64 数据类型
Binary
表示 Avro bytes 类型,映射到 Arrow 的 Binary 数据类型
Utf8 字符串
以 UTF-8 编码字节表示的字符串数据,对应于 Arrow 的 StringArray
Utf8View
以 UTF-8 编码字节表示的字符串数据,具有优化的视图表示,对应于 Arrow 的 StringViewArray,它为字符串操作提供了更好的性能
可通过 ReadOptions::use_utf8view 启用 Utf8View 选项。
Date32
表示 Avro date 逻辑类型,映射到 Arrow 的 Date32 数据类型
时间(毫秒)
表示 Avro time-millis 逻辑类型,映射到 Arrow 的 Time32(TimeUnit::Millisecond) 数据类型
时间(微秒)
表示 Avro time-micros 逻辑类型,映射到 Arrow 的 Time64(TimeUnit::Microsecond) 数据类型
TimestampMillis(bool)(毫秒时间戳 (布尔值))
表示 Avro timestamp-millis 或 local-timestamp-millis 逻辑类型
映射到 Arrow 的 Timestamp(TimeUnit::Millisecond) 数据类型。布尔参数指示时间戳是否具有 UTC 时区 (true) 或为本地时间 (false)
TimestampMicros(bool)(微秒时间戳 (布尔值))
表示 Avro timestamp-micros 或 local-timestamp-micros 逻辑类型
映射到 Arrow 的 Timestamp(TimeUnit::Microsecond) 数据类型。布尔参数指示时间戳是否具有 UTC 时区 (true) 或为本地时间 (false)
TimestampNanos(bool)(纳秒时间戳 (布尔值))
表示 Avro timestamp-nanos 或 local-timestamp-nanos 逻辑类型
映射到 Arrow 的 Timestamp(TimeUnit::Nanosecond) 数据类型。布尔参数指示时间戳是否具有 UTC 时区 (true) 或为本地时间 (false)
Fixed(i32)(固定 (i32))
表示 Avro fixed 类型,映射到 Arrow 的 FixedSizeBinary 数据类型。i32 参数指示固定二进制大小
Decimal(usize, Option<usize>, Option<usize>)(十进制 (usize, Option, Option))
表示 Avro decimal 类型,映射到 Arrow 的 Decimal32, Decimal64, Decimal128 或 Decimal256 数据类型
字段为 (precision, scale, fixed_size)。
precision(usize): 总位数。scale(Option<usize>): 小数位数。fixed_size(Option<usize>): 如果由fixed类型支持,则为字节大小,否则为None。
Uuid
表示 Avro Uuid 类型,一个长度为 16 的 FixedSizeBinary。
Enum(Arc<[String]>)(枚举 (Arc<[String]>))
表示 Avro 枚举,映射到 Arrow 的 Dictionary(Int32, Utf8) 类型。
包含的值是枚举的符号。
List(Arc<AvroDataType>)(列表 (Arc))
表示 Avro array 类型,映射到 Arrow 的 List 数据类型
Struct(Arc<[AvroField]>)(结构体 (Arc<[AvroField]>))
表示 Avro record 类型,映射到 Arrow 的 Struct 数据类型
Map(Arc<AvroDataType>)(映射 (Arc))
表示 Avro map 类型,映射到 Arrow 的 Map 数据类型
间隔
表示 Avro duration 逻辑类型,映射到 Arrow 的 Interval(IntervalUnit::MonthDayNano) 数据类型
Union(Arc<[AvroDataType]>, UnionFields, UnionMode)(联合 (Arc<[AvroDataType]>, UnionFields, UnionMode))
表示 Avro union 类型,映射到 Arrow 的 Union 数据类型
DurationNanos(纳秒时长)
表示 Avro 自定义逻辑类型,映射到 Arrow Duration(TimeUnit::Nanosecond)
DurationMicros(微秒时长)
表示 Avro 自定义逻辑类型,映射到 Arrow Duration(TimeUnit::Microsecond)
DurationMillis(毫秒时长)
表示 Avro 自定义逻辑类型,映射到 Arrow Duration(TimeUnit::Millisecond)
DurationSeconds(秒时长)
表示 Avro 自定义逻辑类型,映射到 Arrow Duration(TimeUnit::Second)