如何在Scala中的一个结构中存储不同的数据类型名称

时间:2017-02-25 03:55:04

标签: scala apache-spark

我在trait管道[In,Out]中创建了不同类型的对象,我想动态管道这些对象。管道顺序可以动态改变 我已将这些对象存储在任何类型的数组中,我想以动态方式转换这些对象。

trait Pipe[In, Out] {

  def apply(rdd: RDD[In]): RDD[Out]

  def |[Final](next: Pipe[Out, Final]): Pipe[In, Final] = {
    val self = this
    new Pipe[In, Final] {
      def apply(rdd: RDD[In]) = next(self(rdd))
    }
  }

}
val timestampConverter = new Pipe[String, String]
val summaryBuilder = new Pipe[String, String]
val seperatedRdd = new Pipe[String, (String, ArrayBuffer[Double])]

val arrBuf = new ArrayBuffer[Any]()
    arrBuf += timestampConverter
    arrBuf += summaryBuilder
    arrBuf += seperatedRdd

var ss:Any = arrBuf(0)

for(x <- 1 to arrBuf.length){
      ss = ss.asInstanceOf[PreviousType] | x.asInstanceOf[Type]
    }

是否存在任何用于保持不同对象类型的结构,我想解决上面的PreviousType和Type。

0 个答案:

没有答案