开发者社区> 问答> 正文

如何在Scala中按值对RDD数据(键,值)进行排序?

我试过sortBy像这样的方法:“

ranks.sortBy(x=> x._2, false);

但是,排名的价值没有排序,细节如图所示。https://i.stack.imgur.com/9OADo.png

那么我应该如何纠正我的解决方案?为什么会失败?

展开
收起
社区小助手 2018-12-19 17:07:26 2310 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    我认为ranks是var你的情景。

    当你调用时ranks.sortBy...,你没有将它赋给任何变量 - 你只是要求编译器对某些东西进行sortBy并抛弃结果。

    您只需要将其分配给变量,它应该工作(ranks = ranks.sortBy(...)或val something = ranks.sortBy(...))。这是REPL中的一个简单示例:

    scala> var l = List(3, 1, 2)
    l: List[Int] = List(3, 1, 2)

    scala> l.sortBy(x => x)
    res1: List[Int] = List(1, 2, 3)

    scala> l // will be the same as before
    res2: List[Int] = List(3, 1, 2)

    scala> l = l.sortBy(x => x)
    l: List[Int] = List(1, 2, 3)

    scala> l // will have changed
    res3: List[Int] = List(1, 2, 3)

    2019-07-17 23:23:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Just Enough Scala for Spark 立即下载
JDK8新特性与生产-for“华东地区scala爱好者聚会” 立即下载
低代码开发师(初级)实战教程 立即下载