当前位置: 首页 > 知识库问答 >
问题:

星星之火中的排序

章振
2023-03-14

有一些类似的问题,比如这个和这个,但他们不能给我足够的帮助。下面是我的一段代码。

val output = abc.collect()
output.foreach(tup => println(tup._1 + "  " + math.ceil(tup._2 * 1000)/1000))

下面是一段输出。

 5         0.835
 1         0.901
 110       0.797
 7         0.821
 11        0.899
 0         0.871
 32        0.313
 78        0.273
 35698     0.333
 119       0.273

我想以排序的形式输出。我尝试了,但是它给出的输出不是我需要的。它是排序的,但是可能是字符串,而不是数字。它类似于

 0          0.871
 1          0.901
 10         1.072
 11         0.899
 110        0.797
 111        0.288
 12         0.288
 123        0.273
 14         0.554
 153        0.228

需要帮忙吗?


共有2个答案

霍伟彦
2023-03-14

您可以先对RDD进行排序,然后创建输出,而不是先从RDD生成输出,然后再应用排序

val abc=sc.parallelize(Array(("5",0.835),("1",0.901),("110",0.797)))
abc.map{case (k,v)=>(k.toInt,v)}.takeOrdered(3).foreach(println(_))
//(1,0.901)
//(5,0.835)
//(110,0.797)
商皓
2023-03-14

takeOrdered(n)collect()一起使用时出现了一些问题。我尝试了val output=abc。takeOrdered(10000),效果非常好。

 类似资料:
  • 发发面经攒攒人品😄 电话面 闲聊: 自我介绍 怎么学习前端的?学习的路线是什么 未来的发展方向 1.HTML语义化 2.盒模型 3.元素隐藏的方法 4.flex 5.promise 6.react中key的作用 7.react中如何创建元素 8.react通信方式 9.闭包?场景 10.forEach和map的区别 11.for循环和forEach的区别,性能方面 12.http状态码 13.怎

  • 插件更新到Spark2.0了吗?我不能使用插件 错误: 只要jdbc连接凤凰就可以了!

  • 标题“本地级别”和5个状态数据本地-->进程本地-->节点本地-->机架本地-->任何是什么意思?

  • #秋招# #面经# #烽火星空# 时间:9.22 14:00 1、自我介绍 2、Java访问权限 3、Java数据类型 4、说一下HashMap 5、说一下线程安全的集合 6、说一下hashMap扩容机制 7、创建线程的几种方式 8、说一下sql注入,怎么解决 9、说一下mysql的外连接 10、介绍一下SpringMVC的执行过程 ……还有几个忘记了 11、项目相关 redis、nginx、li

  • 一面 2022.10.14 自我介绍 项目 进程与线程的区别 TCP超时重传 C++与C的区别 struct与class的区别 c++的设计模式 TCP3次握手 快排原理 vector 面完秒发二面通知 #秋招##校招##烽火星空#

  • 作为ios开发程序员,经常会用到用到手机的gps定位服务。而由于天朝的火星地图导致一直无法正确将位置显示到地图上。作者在翻阅了大量的资料后获取了真实gps和火星gps之间的转换方法。本demo采用查询偏移数据库加原坐标的方法,解决了火星坐标的问题,能够十分准确地进行定位。本Demo是精度为0.1的偏移数据库,大小只有3M,精确一般在5m。 [Code4App.com]