Spark函数:cogroup
2016-05-10 14:32
302 查看
cogroup:对两个RDD中的KV元素,每个RDD中相同key中的元素分别聚合成一个集合。与reduceByKey不同的是针对两个RDD中相同的key的元素进行合并。
Demo1:
将多个RDD中同一个Key对应的Value组合到一起。
data1中不存在Key为3的元素(自然就不存在Value了),在组合的过程中将data1对应的位置设置为CompactBuffer()了,而不是去掉了。
Demo2:
val DBName=Array(
Tuple2(1,"Spark"),
Tuple2(2,"Hadoop"),
Tuple2(3,"Kylin"),
Tuple2(4,"Flink")
)
val numType=Array(
Tuple2(1,"String"),
Tuple2(2,"int"),
Tuple2(3,"byte"),
Tuple2(4,"bollean"),
Tuple2(5,"float"),
Tuple2(1,"34"),
Tuple2(1,"45"),
Tuple2(2,"47"),
Tuple2(3,"75"),
Tuple2(4,"95"),
Tuple2(5,"16"),
Tuple2(1,"85")
)
val names=sc.parallelize(DBName)
val types=sc.parallelize(numType)
val nameAndType=names.cogroup(types) //基于key进行join 结果并没有顺序
nameAndType.collect.foreach(println)
输出结果:
(4,(CompactBuffer(Flink),CompactBuffer(bollean, 95)))
(1,(CompactBuffer(Spark),CompactBuffer(String, 34, 45, 85)))
(3,(CompactBuffer(Kylin),CompactBuffer(byte, 75)))
(5,(CompactBuffer(),CompactBuffer(float, 16)))
(2,(CompactBuffer(Hadoop),CompactBuffer(int, 47)))
Demo1:
将多个RDD中同一个Key对应的Value组合到一起。
data1中不存在Key为3的元素(自然就不存在Value了),在组合的过程中将data1对应的位置设置为CompactBuffer()了,而不是去掉了。
Demo2:
val DBName=Array(
Tuple2(1,"Spark"),
Tuple2(2,"Hadoop"),
Tuple2(3,"Kylin"),
Tuple2(4,"Flink")
)
val numType=Array(
Tuple2(1,"String"),
Tuple2(2,"int"),
Tuple2(3,"byte"),
Tuple2(4,"bollean"),
Tuple2(5,"float"),
Tuple2(1,"34"),
Tuple2(1,"45"),
Tuple2(2,"47"),
Tuple2(3,"75"),
Tuple2(4,"95"),
Tuple2(5,"16"),
Tuple2(1,"85")
)
val names=sc.parallelize(DBName)
val types=sc.parallelize(numType)
val nameAndType=names.cogroup(types) //基于key进行join 结果并没有顺序
nameAndType.collect.foreach(println)
输出结果:
(4,(CompactBuffer(Flink),CompactBuffer(bollean, 95)))
(1,(CompactBuffer(Spark),CompactBuffer(String, 34, 45, 85)))
(3,(CompactBuffer(Kylin),CompactBuffer(byte, 75)))
(5,(CompactBuffer(),CompactBuffer(float, 16)))
(2,(CompactBuffer(Hadoop),CompactBuffer(int, 47)))
相关文章推荐
- WebListener
- 欢迎使用CSDN-markdown编辑器
- Python学习笔记:集合(set)基本内容
- 【转载】IDEA中如何配置Tomcat和项目?
- Geometry Instancing(几何体实例化)
- TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节
- 构建之法阅读笔记06
- jquery设置cors跨域
- spring-security用户权限认证框架
- ios的属性和成员变量在.h文件和.m文件的不同
- 高级语言程序感想以及作品第二节课刘子威
- vitrualbox
- 从数据库导出到.csv文件方法
- Agri-Net
- c语言的坑
- 去掉ViewPager滑到第一个或者最后一个效果
- Linux系统查看硬件配置
- testlink xml转excel
- html页面、canvas导出图片
- Ganglia3.1.7安装与配置(收录)