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



假设我的RDD为3行如下

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

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

使用 sortBy

val rdd : RDD[((String,Int),Int)] = ???
rdd.sortBy{case ((name,age),_) => name}

按年龄排序:

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

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)在此处输入图像描述

最新更新