43.top10热门品类之使用Scala实现二次排序
2017-04-13 23:18
344 查看
本文为《Spark大型电商项目实战》 系列文章之一,主要介绍使用Scala实现二次排序。
如果运行后结果为
本文为《Spark大型电商项目实战》系列文章之一,
更多文章:Spark大型电商项目实战:http://blog.csdn.net/u012318074/article/category/6744423
代码实现
在Scala IDE中的包com.erik.sparkproject中创建
SortKey.scala,实现二次排序,代码如下:
package com.erik.sparkproject /** * @author Erik */ class SortKey(val clickCount: Int, val orderCount: Int, val payCount: Int) extends Ordered[SortKey] with Serializable { def compare(that: SortKey): Int = { if(clickCount - that.clickCount != 0) { clickCount - that.clickCount } else if(orderCount - that.orderCount != 0) { orderCount - that.orderCount } else if(payCount - that.payCount != 0) { payCount - that.payCount } else { 0 } } }
测试
对实现的二次排序方法进行测试,新建SortKeyTest.scala,代码如下:
package com.erik.sparkproject import org.apache.spark.SparkConf import org.apache.spark.SparkContext /** * @author Erik */ object SortKeyTest { def main(args: Array[String]): Unit = { val conf = new SparkConf() .setAppName("SortKeyTest") .setMaster("local") val sc = new SparkContext(conf) val arr = Array(Tuple2(new SortKey(30, 35, 40), "1"), Tuple2(new SortKey(35, 30, 40), "2"), Tuple2(new SortKey(30, 38, 30), "3")) val rdd = sc.parallelize(arr, 1) val sortedRdd = rdd.sortByKey(false) for(tuple <- sortedRdd.collect()) { println(tuple._2) } } }
如果运行后结果为
2 3 1,则说明测试通过。
本文为《Spark大型电商项目实战》系列文章之一,
更多文章:Spark大型电商项目实战:http://blog.csdn.net/u012318074/article/category/6744423
相关文章推荐
- scala语言二次排序实现
- 使用Hadoop和Spark实现二次排序
- 分别使用Hadoop和Spark实现二次排序
- 40.top10热门品类之进行二次排序
- Spark入门-scala实现二次或多次排序问题
- 混合使用ForkJoin+Actor+Future实现一千万个不重复整数的排序(Scala示例)
- 二次排序问题(分别使用Hadoop和Spark实现)
- Spark Scala 实现二次排序和相加
- 39.top10热门品类之自定义二次排序key
- 数据处理中Java与scala实现二次排序
- SPARK排序算法,使用Scala开发 二次排序 自定义KEY值,相比JAVA的罗嗦,Scala优雅简洁!!!
- Effective C# Item26:使用IComarable和IComparer接口实现排序关系
- WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- 数据结构复习笔记:使用PHP实现内排序之冒泡排序和简单选择排序
- SQL Server 2005中使用CLR函数实现字符串排序
- 使用Dynamic LINQ实现Ext Grid的远程排序
- 热门话题:使用WCF实现SOA面向服务编程(二)——实现简单的WCF开发实例
- 使用Dynamic LINQ实现Ext Grid的远程排序
- 使用Dynamic LINQ实现Ext Grid的远程排序
- 如何使用 Ehlib 实现自动排序(转)