Avro序列化schema

import java.io.ByteArrayOutputStream

import java.io.ByteArrayInputStream

import java.io.ObjectOutputStream

import java.io.ObjectInputStream

import org.apache.avro.Schema

 

class AvroSchemaConverter(schema: Schema) extends Serializable {

  private val schemaBytes = AvroSchemaConverter.serializeSchema(schema)

  

  def getSchema: Schema = AvroSchemaConverter.deserializeSchema(schemaBytes)

 

}

 

object AvroSchemaConverter {

  def serializeSchema(schema: Schema): Array[Byte] = {

    val stream = new ByteArrayOutputStream()

    val oos = new ObjectOutputStream(stream)

    oos.writeObject(schema)

    oos.close()

    stream.toByteArray

  }

 

  def deserializeSchema(bytes: Array[Byte]): Schema = {

    val stream = new ByteArrayInputStream(bytes)

    val ois = new ObjectInputStream(stream)

    val schema = ois.readObject.asInstanceOf[Schema]

    ois.close()

    schema

  }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值