基于Numeric的泛型SortByValue

时间:2015-11-11 00:06:17

标签: scala apache-spark generic-programming implicits

如何为两个用例创建一个隐式类?

  implicit class SortableByIntValue(rdd:RDD[(String,Int)]){
    def sortByValue = rdd.sortBy(_._2)
  }
  implicit class SortableByDoubleValue(rdd:RDD[(String,Double)]){
    def sortByValue = rdd.sortBy(_._2)
  }

1 个答案:

答案 0 :(得分:1)

试试这个:

import scala.reflect.ClassTag

implicit class SortableByValue[N : Numeric : ClassTag](rdd:RDD[(String,N)]){
  def sortByValue = rdd.sortBy(_._2)
}

如果需要,这应该可以扩展到Ordering可用的任何类型([O : Ordering]而不是[N : Numeric])。