如何在scala 2.10中实现Serializable接口?

时间:2015-11-04 16:43:54

标签: scala serialization

这不重复。从其他问题我看到有关旧scala版本中的实现接口Serializable的解决方案。我使用了scala 2.10并尝试了with Serializable。但是,当我运行代码时,我仍然得到ReplaceNA.Ljava/lang/Object;: Serialization not implemented我是否需要在代码中导入任何内容?我该怎么解决这个问题。感谢

这就是我试过的



package org.apache.spark.h2o.utils

import water.fvec.{NewChunk, Frame, Chunk}
import water._
import water.parser.ValueString

import java.io._
import scala.Serializable


class ReplaceNA[T](val value: T)(implicit add: TAdd[T]) extends MRTask[ReplaceNA[T]] with Serializable{
  override def map(c: Chunk, nc: NewChunk): Unit = {
    for (row <- 0 until c.len()) {
      
      if (c.isNA(row)) {
        add.addValue(nc, value)
      } else {
       
        nc.addNum(1)
      }
    }
  }

}

trait TAdd[T] extends Serializable {
  def addValue(nc: NewChunk, value: T): Any
}


object TAdd extends Serializable {
  implicit val addDouble = new TAdd[Double] { def addValue(nc: NewChunk, value: Double) = nc.addNum(value) }
  implicit val addFloat = new TAdd[Float] { def addValue(nc: NewChunk, value: Float) = nc.addNum(value) }
  implicit val addValueString = new TAdd[ValueString] { def addValue(nc: NewChunk, value: ValueString) = nc.addStr(value) }
}
&#13;
&#13;
&#13;

0 个答案:

没有答案