我有一个名为scoreTriplets的RDD[ARRAY[String]],我按照以下方式进行排序。
var ScoreTripletsArray = scoreTriplets.collect()
if (ScoreTripletsArray.size > 0) {
/*Sort the ScoreTripletsArray descending by score field*/
scala.util.Sorting.stableSort(ScoreTripletsArray, (e1: Array[String], e2: Array[String]) => e1(3).toInt > e2(3).toInt)
}
如果缺少元素,则collect()操作会变得很重。因此,我需要在不使用collect()的情况下按score
对RDD进行排序。
scoreTriples是一个RDD[ARRAY[String]],每一行RDD将存储以下变量的数组:
EdgeId sourceID destID score
sourceNAme destNAme distance
请给我任何参考或提示。
top
和takeOrdered
已经返回了一个数组。 - zero323rdd.top(rdd.count())(Ordering.by[Array[String], Int](_.apply(3).toInt))
这样的代码吗?这样我就可以获取所有数据。 - Sandip Armal PatilsortBy
之后跟着collect
会返回数组吗?或者如何操作? - Sandip Armal Patil