- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
sparkAPI(二)
本章要点一、概述二、sortBy函数实现以及使用三、sortByKey函数实现以及使用
概述在很多应用场景都需要对结果数据进行排序,Spark中有时也不例外。在Spark中存在两种对RDD进行排序的函数,分别是sortBy和sortByKey函数。sortBy是对标准的RDD进行排序,它是从Spark0.9.0之后才引入的(可以参见SPARK-1063)。而sortByKey函数是对PairRDD进行排序,也就是有Key和Value的RDD。下面将分别对这两个函数的实现以及使用进行说明。
sortBy函数实现以及使用sortBy函数是在org.apache.spark.rdd.RDD类中实现的,它的实现如下defsortBy[K](f:(T)=K,ascending:Boolean=true,numPartitions:Int=this.partitions.size)(implicitord:Ordering[K],ctag:ClassTag[K]):RDD[T]=this.keyBy[K](f).sortByKey(ascending,numPartitions).values
sortBy函数实现以及使用该函数最多可以传三个参数:第一个参数是一个函数,该函数的也有一个带T泛型的参数,返回类型和RDD中元素的类型是一致的;第二个参数是ascending,从字面的意思大家应该可以猜到,是的,这参数决定排序后RDD中的元素是升序还是降序,默认是true,也就是升序;第三个参数是numPartitions,该参数决定排序后的RDD的分区个数,默认排序后的分区个数和排序之前的个数相等,即为this.partitions.size。
sortBy函数实现以及使用从sortBy函数的实现可以看出,第一个参数是必须传入的,而后面的两个参数可以不传入。而且sortBy函数函数的实现依赖于sortByKey函数,关于sortByKey函数后面会进行说明。keyBy函数也是RDD类中进行实现的,它的主要作用就是将将传进来的每个元素作用于f(x)中,并返回tuples类型的元素,也就变成了Key-Value类型的RDD了,它的实现如下:defkeyBy[K](f:T=K):RDD[(K,T)]={map(x=(f(x),x))}
使用scalavaldata=List(3,1,90,3,5,12)data:List[Int]=List(3,1,90,3,5,12)scalavalrdd=sc.parallelize(data)rdd:org.apache.spark.rdd.RDD[Int]=ParallelCollectionRDD[0]atparallelizeatconsole:14scalardd.collectres0:Array[Int]=Array(3,1,90,3,5,12)scalardd.sortBy(x=x).collectres1:Array[Int]=Array(1,3,3,5,12,90)
使用scalardd.sortBy(x=x,false).collectres3:Array[Int]=Array(90,12,5,3,3,1)scalavalresult=rdd.sortBy(x=x,false)result:org.apache.spark.rdd.RDD[Int]=MappedRDD[23]atsortByatconsole:16scalaresult.partitions.sizeres9:Int=2scalavalresult=rdd.sortBy(x=x,false,1)result:org.apache.spark.rdd.RDD[Int]=MappedRDD[26]atsortByatconsole:16
使用scalaresult.partitions.sizeres10:Int=1上面的实例对rdd中的元素进行升序排序。并对排序后的RDD的分区个数进行了修改,上面的result就是排序后的RDD,默认的分区个数是2,而我们对它进行了修改,所以最后变成了1。
sortByKey函数实现以及使用sortByKey函数作用于Key-Value形式的RDD,并对Key进行排序。它是在org.apache.spark.rdd.OrderedRDDFunc
您可能关注的文档
- 医用冰垫制作素材薇诺娜新产品上线.pdf
- 腈制备方法如下columbia有机化学课件20 html.pptx
- 工作场所空气中乙二醇职业接触限值及其测定方法卫生网.pdf
- 玄武接口网关新协议.pdf
- 章语言基本知识公选课件-c language.pdf
- ni规格除非另有说明下面列出均为内皮.pdf
- mang 6295金融学概论讲师taufiq outline.pdf
- 交强险互碰赔偿处理规则版.pdf
- 购房七论绿景苑现象剖析录.pdf
- 文稿教程杜项目9000 h pln.pdf
- 第七章 第二节 第1课时 江海交汇之地(作业教学设计)2023-2024学年八年级地理下册同步备课(人教版).docx
- 第2课《腊八粥》教学设计 2024—2025学年统编版(五四学制)语文六年级下册.docx
- 小学信息技术第一册上 给图着色教案 泰山版.docx
- 第15课 货币的使用与世界货币体系的形成 教学设计-2024-2025学年高二上学期历史统编版(2019)选择性必修1国家制度与社会治理.docx
- 第三单元 物态变化(大单元教学设计)(新教材)2024-2025学年八年级物理上册同步备课系列(人教版2024).docx
- 河北省石家庄市井陉矿区贾庄镇学区贾庄中学八年级地理上册 1.1 疆域教案(3) 新人教版.docx
- 八年级历史下册 第三单元 中国特色社会主义道路 第11课 为实现中国梦而努力奋斗教案 新人教版.docx
- 八年级语文下册 十五 苏格拉底之死教案设计 长春版.docx
- 整本书阅读红楼梦(一)导语-2023-2024学年高一语文下学期同步备课教学设计(统编版必修下册).docx
- 第20课 清朝君主专制的强化(精品教学设计)2023-2024学年七年级历史下册同步教学探究教学设计(统编版).docx
最近下载
- 新人教部编版小学二年级上册数学全册课时练习题.pdf
- 统编版语文四年级上册习作:写观察日记《绿豆芽生长记》(课件).pptx
- 英威腾 Goodrive300_01A_EH系列高速电机专用变频器说明书_V1.0.pdf
- 西师大版数学四年级上册全册表格式教案.pdf VIP
- 第18章 电功率难 难题练习 2021年初中物理培优(重点高中自主招生 竞赛).docx
- 《流行声乐演唱》课件——2“会听、会唱、会分析”.pptx VIP
- 公安局报警定位系统方案.pdf VIP
- 《铁路基桩检测管理信息系统数据接口暂行规定》(附条文及目录).pdf
- QB_T 2584-2023轻工标准 淋浴房.pdf
- 水轮发电机组发电机检修规程.doc
文档评论(0)