假设我的RDD为3行,如下所示
{(Sam, 23), 1}
{(Ram, 32), 5}
{(Dan, 25), 2}
第一列是说的元组(姓名,年龄)。在Scala中,如何仅根据第一列中的名称字段对此RDD进行排序?同样,如何根据年龄对这个RDD进行排序?
答案 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