测试spark版本:

Spark context Web UI available at http://192.168.1.1:32735
Spark context available as 'sc' (master = local[*], app id = local-1380172893828).
Spark session available as 'spark'.
Welcome to____              __/ __/__  ___ _____/ /___\ \/ _ \/ _ `/ __/  '_//___/ .__/\_,_/_/ /_/\_\   version 2.1.0/_/Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_72)
Type in expressions to have them evaluated.
Type :help for more information.

备注:spark1.5中没有提供rdd.combineByKeyWithClassTag算子,但提供的有rdd.combineByKey算子(spark2.1中依然保留)。

使用示例:

scala> case class FModel(cgridid: Int, angle: Double, drsrp: Double, distance: Double)
defined class FModelscala>  val sample_rdd=sc.makeRDD(|       Array(|         (1,FModel(1,2.0,2.1,2.2)),|         (1,FModel(2,2.2,2.11,23.2)),|         (2,FModel(1,2.0,2.1,2.2)),|         (1,FModel(3,2.0,42.1,22.2)),|         (2,FModel(2,2.2,2.11,23.2)),|         (3,FModel(3,2.0,42.1,22.2))|       )|     )
sample_rdd: org.apache.spark.rdd.RDD[(Int, FModel)] = ParallelCollectionRDD[0] at makeRDD at <console>:26scala> val combinByKeyRDD = sample_rdd.combineByKeyWithClassTag(|       (x: FModel) => (List(x), 1),|       (peo: (List[FModel], Int), x: FModel) => (x :: peo._1, peo._2 + 1),|       (sex1: (List[FModel], Int), sex2: (List[FModel], Int)) => (sex1._1 ::: sex2._1, sex1._2 + sex2._2))
combinByKeyRDD: org.apache.spark.rdd.RDD[(Int, (List[FModel], Int))] = ShuffledRDD[1] at combineByKeyWithClassTag at <console>:28scala> combinByKeyRDD.foreach(println)
[Stage 0:>                                                         (0 + 0) / 12](3,(List(FModel(3,2.0,42.1,22.2)),1))
(2,(List(FModel(1,2.0,2.1,2.2), FModel(2,2.2,2.11,23.2)),2))
(1,(List(FModel(1,2.0,2.1,2.2), FModel(2,2.2,2.11,23.2), FModel(3,2.0,42.1,22.2)),3))scala> 

转载于:https://www.cnblogs.com/yy3b2007com/p/8506552.html

spark2.1:rdd.combineByKeyWithClassTag的用法示例相关推荐

  1. Go基础系列:双层channel用法示例

    Go channel系列: channel入门 为select设置超时时间 nil channel用法示例 双层channel用法示例 指定goroutine的执行顺序 双层通道的解释见Go的双层通道 ...

  2. objdump反汇编用法示例

    objdump反汇编用法示例 原文:http://blog.csdn.net/zoomdy/article/details/50563680 -d:将代码段反汇编 -S:将代码段反汇编的同时,将反汇编 ...

  3. python 装饰器 参数-python函数装饰器之带参数的函数和带参数的装饰器用法示例...

    本文实例讲述了python函数装饰器之带参数的函数和带参数的装饰器用法.分享给大家供大家参考,具体如下: 1. 函数带多个参数 # 普通的装饰器, 打印函数的运行时间 def decrator(fun ...

  4. php指定长度 分割整形,php指定长度分割字符串str_split函数用法示例

    本文实例讲述了php指定长度分割字符串str_split函数用法.分享给大家供大家参考,具体如下: 示例1:$str = 'abcdefgh'; $arr = str_split($str,2); 运 ...

  5. Linux find 用法示例

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  6. mysql教程or怎么用_MySQL中or语句用法示例

    1.mysql中or语法的使用,在mysql语法中or使用注意点. 项目遇到坑,遍历发放奖励数据查询错误!!! $sql = 'SELECT * FROM `vvt_spread_doubleegg_ ...

  7. html兄弟选择器怎么用,CSS的相邻兄弟选择器用法示例讲解

    对于有相同父元素的相邻HTML元素查找便可以使用CSS的相邻兄弟选择器,这里我们就来看一下CSS的相邻兄弟选择器用法简单讲解: 可选择紧接在另一个元素后的元素,且二者有相同的父级元素 下面代码中,it ...

  8. boost::format模块format的基本用法示例

    boost::format模块format的基本用法示例 实现功能 C++实现代码 实现功能 boost::format模块format的基本用法示例 C++实现代码 #include "b ...

  9. boost::format模块format的高级用法示例

    boost::format模块format的高级用法示例 实现功能 C++实现代码 实现功能 boost::format模块format的高级用法示例 C++实现代码 #include <ios ...

最新文章

  1. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸
  2. VTK:Points之ExtractSurface
  3. solr4.10和solr5.x ik分词器配置,(Deprecated--2017-04-23)
  4. 计算机秋招必备!广州互联网大厂企业整理清单!
  5. go tcp连接_TCP漫谈之keepalive和time_wait
  6. springcloud 服务降级
  7. C语言 处理字符串库 string.h
  8. Apache Storm技术实战之2 -- BasicDRPCTopology
  9. 计算机课评课用语,【数学评课50条】_评课常用语50条
  10. 不写xml的MyBatis-Plus中关联属性的查询(1对1,1对n)
  11. 计算幻术之路(一):被定义之前的增强现实
  12. android上的sip软电话
  13. 计算机 bat文件夹加密,无需第三方软件,自制批处理加密隐藏文件夹
  14. the voyage游戏android,Bullet Voyage
  15. 手机软件测试规范(含具体用例)
  16. 数据学习(十四)-方差分析与试验设计
  17. k-近邻算法1(kNN)使用kNN算法改进约会网站的配对效果
  18. java mac地址 加冒号_Mac加减法,Mac地址加1,Mac地址减1
  19. 为什么wps数字前面有撇号_excel表格中数据前有撇号-Excel 如何去除数字前面的撇号...
  20. Sequoia(基于JDBC的数据库集群中间件)用户手册

热门文章

  1. MDK4 如何生成bin文件
  2. 『Python』__getattr__()特殊方法
  3. Mysql Insert Or Update语法实例
  4. c++性能之对象与指针性能比较、以及java与c++性能对比实测
  5. springboot 远程日志
  6. window.open与window.location.href
  7. 无法加载安装程序库 wbemupgd.dll
  8. 你为什么需要在64位系统下用32位程序
  9. MySQL5.7新特性——在线收缩undo表空间 (转载)
  10. 取消 AndroidStudio 启动时自动打开上次关闭的项目