Avro模式解析器忽略了byte类型的逻辑类型。
创始人
2024-11-13 07:30:17
0

Avro模式解析器通常会忽略byte类型的逻辑类型(如"date"、"time-millis"和"decimal"等),并将其作为原始的byte类型处理。因此,如果您在定义schema时使用了byte类型的逻辑类型,您需要在读取或写入数据时手动处理这些逻辑类型。以下是一个示例:

使用带有byte类型的逻辑类型的schema:

{ "type": "record", "name": "example", "fields": [ { "name": "my_decimal", "type": { "type": "bytes", "logicalType": "decimal", "precision": 4, "scale": 2 } } ] }

读取和写入数据时手动处理逻辑类型:

import org.apache.avro.Conversions.DecimalConversion; import org.apache.avro.LogicalTypes; import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericRecord; import org.apache.avro.generic.GenericData.Record; import org.apache.avro.io.DatumReader; import org.apache.avro.io.DatumWriter; import org.apache.avro.io.Decoder; import org.apache.avro.io.DecoderFactory; import org.apache.avro.io.Encoder; import org.apache.avro.io.EncoderFactory; import org.apache.avro.specific.SpecificDatumReader; import org.apache.avro.specific.SpecificDatumWriter; import org.apache.avro.util.Utf8;

import java.io.ByteArrayOutputStream; import java.io.IOException; import java.math.BigDecimal; import java.nio.ByteBuffer;

public class AvroExample {

// deserialize bytes to record
public static Record deserialize(byte[] bytes, Schema schema) throws IOException {
    DatumReader datumReader = new SpecificDatumReader<>(schema);
    Decoder decoder = DecoderFactory.get().binaryDecoder(bytes, null);
    Record record = datumReader.read(null, decoder);
    return record;
}

// serialize record to bytes
public static byte[] serialize(Record record, Schema schema) throws IOException {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    Datum

相关内容

热门资讯

普及透视!哈糖大菠萝挂!教程辅... 普及透视!哈糖大菠萝挂!教程辅助辅助挂(有挂神器)-哔哩哔哩1、打开软件启动之后找到中间准星的标志长...
揭幕透视!pokemmo内置修... 揭幕透视!pokemmo内置修改器!记者发布辅助器(揭秘有挂)-哔哩哔哩进入游戏-大厅左侧-新手福利...
分享透视!pokemmo手机脚... 分享透视!pokemmo手机脚本辅助器!科技介绍辅助软件(有挂辅助)-哔哩哔哩1、下载好pokemm...
详细透视!哈糖大菠萝挂!推荐几... 详细透视!哈糖大菠萝挂!推荐几款新版辅助方法(有挂助手)-哔哩哔哩1、详细透视!哈糖大菠萝挂!推荐几...
详细透视!wepoker透视脚... 详细透视!wepoker透视脚本安卓!最新技巧辅助工具(今日头条)-哔哩哔哩1、操作简单,无需wep...
曝光透视!wepoker透视辅... 曝光透视!wepoker透视辅助下载!盘点几款辅助挂(真实有挂)-哔哩哔哩1、wepoker透视辅助...
解谜透视!pokemmo手机辅... 解谜透视!pokemmo手机辅助软件!玩家交流辅助神器(有挂方法)-哔哩哔哩所有人都在同一条线上,像...
了解透视!xpoker辅助怎么... 了解透视!xpoker辅助怎么用!推荐十款辅助技巧(讲解有挂)-哔哩哔哩1、这是跨平台的xpoker...
了解透视!福建大菠萝万能辅助器... 了解透视!福建大菠萝万能辅助器!技巧知识分享辅助神器(发现有挂)-哔哩哔哩福建大菠萝万能辅助器破解侠...
了解透视!hh poker软件... 了解透视!hh poker软件!玩家攻略辅助攻略(竟然有挂)-哔哩哔哩hh poker软件是不是有人...