我有以下RDD:
val a = List((3, 1.0), (2, 2.0), (4, 2.0), (1,0.0))
val rdd = sc.parallelize(a)
我想按其右手部分的升序对元组元素进行排序:
下面的代码可以做到这一点,但是它是如此丑陋和低效,以至于我想知道是否有人可以提出更好的建议。
val b = ((rdd.takeOrdered(2).zipWithIndex.map{case (k,v) => (v,k)}).toList find {x => x._1 == 1}).map(x => x._2).map(x=> x._1)
简单地:
implicit val ordering = scala.math.Ordering.Tuple2[Double, Int]
rdd.map(_.swap).takeOrdered(2).max.map { case (k, v) => v }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句