How do I create one implicit class for both use cases?
implicit class SortableByIntValue(rdd:RDD[(String,Int)]){
def sortByValue = rdd.sortBy(_._2)
}
implicit class SortableByDoubleValue(rdd:RDD[(String,Double)]){
def sortByValue = rdd.sortBy(_._2)
}
Try this:
import scala.reflect.ClassTag
implicit class SortableByValue[N : Numeric : ClassTag](rdd:RDD[(String,N)]){
def sortByValue = rdd.sortBy(_._2)
}
This should be extensible to any type for which an Ordering
is available ([O : Ordering]
instead of [N : Numeric]
), if desired.