43.top10热门品类之使用Scala实现二次排序
来源:互联网 发布:php扩展库有哪些 编辑:程序博客网 时间:2024/06/08 06:37
本文为《Spark大型电商项目实战》 系列文章之一,主要介绍使用Scala实现二次排序。
代码实现
在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.sparkprojectimport org.apache.spark.SparkConfimport 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
0 0
- 43.top10热门品类之使用Scala实现二次排序
- 39.top10热门品类之自定义二次排序key
- 40.top10热门品类之进行二次排序
- 42.top10热门品类之本地测试
- 35.top10热门品类之需求回顾以及实现思路分析
- 41.top10热门品类之获取top10品类并写入MySQL
- 36.top10热门品类之获取session访问过的所有品类
- 37.top10热门品类之计算各品类点击、下单和支付的次数
- 38.top10热门品类之join品类与点击下单支付次数
- Scala之二次排序
- scala语言二次排序实现
- Spark:Scala实现二次排序
- Spark Scala 实现二次排序和相加
- Spark Scala 二次排序
- Spark Scala 二次排序
- 44.top10活跃session之开发准备以及top10品类RDD生成
- 45.top10活跃session之计算top10品类被各sessoin点击的次数
- 数据处理中Java与scala实现二次排序
- Spring HibernateTemplate properties文件错误
- rest、注解、spring与struts
- 使用OVS DPDK
- 堆排序详解
- 【实战】爬虫实战-pixabay图片存储mysql
- 43.top10热门品类之使用Scala实现二次排序
- PHP利用魔术方法实现准AOP
- 关于Maven的Missing artifact解决方案
- Github pages + Hexo 博客 yilia 主题使用畅言评论系统
- js属性操作
- eclipse中出现The con“structor 'NimbusLookAndFeel()' is not API ”的解决办法
- MFC单文档之串口通讯实现16进制数据的发送和接收
- linux下软件安装、卸载、运行
- 修改VMware虚拟机网卡MAC地址的方法总结