根据Scala中元组中的值对RDD进行排序

时间:2017-11-29 05:54:20

标签: scala sorting apache-spark rdd

假设我的RDD为3行,如下所示

{(Sam, 23), 1}
{(Ram, 32), 5}
{(Dan, 25), 2}

第一列是说的元组(姓名,年龄)。在Scala中,如何仅根据第一列中的名称字段对此RDD进行排序?同样,如何根据年龄对这个RDD进行排序?

2 个答案:

答案 0 :(得分:1)

使用sortBy

val rdd : RDD[((String,Int),Int)] = ???

rdd.sortBy{case ((name,age),_) => name}

按年龄排序:

rdd.sortBy{case ((name,age),_) => age}

答案 1 :(得分:0)

sparkContext.parallelize(Array( ("Sam", 23),("Ram", 32),("Dan", 25) )).sortBy(_._1)//If it's inverted order,input false ,If you pass the age _1 to _2 .foreach(println) enter image description here