我知道Scalding的默认序列化使用Kryo。所以对于这个例子,假设我有一堆学生对象。
case class Student(name:String, id:String)
val pipe: Pipe[Student] = //....
然后我使用Kryo将该管道写入TextDelimited文件。
pipe.write(args("output"))
现在我有了这些"输出"文件,我如何轻松地将它们读回Student对象?我的总体想法类似于以下但它不起作用。
Tsv("Kryo output files").read.map {bytes =>
val instantiator = (new ScalaKryoInstantiator).setRegistrationRequired(true)
val kryo = instantiator.newKryo
kryo.register(classOf[Person])
val deserialized = kryo.readObject(new Input(bytes), classOf[Person])
deserialized
}
如何将我的Kryo书面文本文件反序列化为它们最初的对象?