处理twitter寒冷中的case类(Scala接口到Kryo)?
Twitter-chill看起来像是一个很好的解决方案,可以解决如何在Scala中高效地序列化,而无需过多的样板。
但是,我没有看到他们如何处理案例类的证据。 这只是自动工作或需要做一些事情(例如创建一个零参数构造函数)?
我对WireFormat
内置的WireFormat
序列化机制有一些经验, WireFormat
是一个类似于Scalding的Scala Hadoop包装器。 他们使用序列化程序来处理多达22个使用apply和unapply方法的参数,并对这些函数的参数进行类型匹配以检索类型。 (这在Kryo /寒意中可能没有必要。)
他们通常只是工作(只要组件成员也可以由Kryo序列化):
case class Foo(id: Int, name: String)
// setup
val instantiator = new ScalaKryoInstantiator
instantiator.setRegistrationRequired(false)
val kryo = instantiator.newKryo()
// write
val data = Foo(1,"bob")
val buffer = new Array[Byte](4096]
val output = new Output(buffer)
kryo.writeObject(output, data)
// read
val input = new Input(buffer)
val data2 = kryo.readObject(input,classOf[Foo]).asInstanceOf[Foo]
链接地址: http://www.djcxy.com/p/68273.html
上一篇: Handling case classes in twitter chill (Scala interface to Kryo)?