Spark JavaPairRDD按值排序

原创 2018年04月16日 19:23:36

Spark Tuple2元组根据Value排序

今天遇到一个需求获取日志里每个方法调用的调用次数。在看了JavaPairRDD排序方法,都是按key进行操作的。sortByKey()5个方法,包括自定义Comparator的,都是按照Key来排序,有点伤感。

  def sortByKey(comp: Comparator[K]): JavaPairRDD[K, V] = sortByKey(comp, true)

RDD这么多操作会漏掉这个么?而且就算按单词的出现次数排序这种需求应该还是很多的。既然能按key排序,那何不把value看成key。于是将元组的key value交换一下顺序,然后在调用sortByKey()。果然很好用。

 JavaRDD<String> logRdd = sparkSession.sparkContext().textFile("root.2018-04-09.log", 1).toJavaRDD();
 JavaPairRDD<Integer,String> counts = logRdd.mapToPair(row->new Tuple2<>(row.split(" ")[0],1))   //假设第一个是方法
                                .reduceByKey((i1,i2)->i1+i2)    
                                .mapToPair((row)->  new Tuple2<>(row._2,row._1))    //交换位置
                                .sortByKey(false);  //倒序
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yyoc97/article/details/79965037

java8实现spark wordcount并且按照value排序输出

最近在学习spark,本来应该是使用scala编程,但是无奈scala没接触过,还得学,就先使用java的spark api练练手,其实发现java8的函数式编程跟scala很多地方异曲同工啊,搞定s...
  • jacklin929
  • jacklin929
  • 2016-12-14 15:26:59
  • 2357

Spark JavaPairRDD按值排序

Spark Tuple2元组根据Value排序 今天遇到一个需求获取日志里每个方法调用的调用次数。在看了JavaPairRDD排序方法,都是按key进行操作的。sortByKey()5个方法,包括自...
  • yyoc97
  • yyoc97
  • 2018-04-16 19:23:36
  • 13

[Spark]Spark RDD 指南四 RDD操作

Spark2.3.0版本: Spark2.3.0 RDD操作RDD支持两种类型的操作:转移(transformations):从现有数据集创建一个新数据集 动作(actions):在数据集上进行计算后...
  • SunnyYoona
  • SunnyYoona
  • 2017-06-13 21:14:25
  • 844

Spark排序算法!! 使用java开发 自定义key值 进行二次排序 深入解析!

Spark使用JAVA开发的二次排序 【数据文件Input】 2 3  4 1  3 2  4 3  8 7  2 1 【运行结果Output】 2 1  2 3  3 2  ...
  • duan_zhihua
  • duan_zhihua
  • 2016-02-28 20:36:55
  • 2511

JavaSpark-键值对操作(PairRDD)

键值对 RDD 通常用来进行聚合计算。先通过一些初始 ETL(抽取、转 化、装载)操作来将数据转化为键值对形式。键值对 RDD 提供了一些新的操作接口 让用户控制键值对 RDD 在各节点上分布情况的...
  • m0_37636453
  • m0_37636453
  • 2018-01-03 21:57:31
  • 726

RDD自定义排序

在spark中很多时候回去对RDD进行排序,但是官方给的排序规则无法满足我们的需求,许多时候需要我们重新定义排序规则,接下来我们来谈论一下RDD的排序规则。 首先我们通过代码来看一下sparkAPI...
  • u014658112
  • u014658112
  • 2018-01-04 23:23:40
  • 117

java实现RDD算子

spark基础与java api介绍 http://www.cnblogs.com/tovin/p/3832405.html     textFile:                  ...
  • qiaojialin
  • qiaojialin
  • 2017-01-03 13:32:30
  • 3062

spark RDD算子(十)之PairRDD的Action操作countByKey, collectAsMap

countByKeydef countByKey(): Map[K, Long] 以RDD{(1, 2),(2,4),(2,5), (3, 4),(3,5), (3, 6)}为例 rdd.coun...
  • T1DMzks
  • T1DMzks
  • 2017-04-26 22:11:20
  • 1394

Spark PairRDD 转化二

package edu.berkeley.simple_project; import java.util.ArrayList; import java.util.Arrays; import ja...
  • henry860916
  • henry860916
  • 2016-02-02 20:17:41
  • 3569

Spark 的键值对(pair RDD)操作,Scala实现

一:什么是Pair RDD?          Spark为包含键值对对类型的RDD提供了一些专有操作,这些操作就被称为Pair RDD,Pair RDD是很多程序的构成要素,因为它们提供了并行操作对...
  • Gamer_gyt
  • Gamer_gyt
  • 2016-07-04 15:52:12
  • 10253
收藏助手
不良信息举报
您举报文章:Spark JavaPairRDD按值排序
举报原因:
原因补充:

(最多只允许输入30个字)