首页 文章

如何使用值来命令我的元组的spark结果降序

提问于
浏览
5

我是新来的火花和斯卡拉 . 我需要将结果计数元组(如(课程,计数))按降序排序 . 我把它放在下面

val results = ratings.countByValue()
 val sortedResults = results.toSeq.sortBy(_._2)

但它仍然无法正常工作 . 以上述方式,它将按升序对结果进行排序 . 但我需要按降序排列 . 任何人都可以帮助我 .

结果如下

(History, 12100),
(Music, 13200),
(Drama, 143000)

但是我需要像下面那样显示它

(Drama, 143000),
(Music, 13200),
(History, 12100)

谢谢

2 回答

  • 4

    你差不多完成了!您需要在 ascending order by default 中安排RDD sortBy() method排列元素以降序添加其他参数 .

    val results = ratings.countByValue()
    val sortedRdd = results.sortBy(_._2, false)
    
    //Just to display results from RDD
    println(sortedRdd.collect().toList)
    
  • 1

    您可以使用

    .sortWith(_._2 >_._2)
    

    大多数时候调用seq并不是一个好主意,因为驱动程序需要把它放在内存中,你可能会在更大的数据集上耗尽内存 . 我猜这是o.k.介绍火花 .

相关问题