将一组数据转化为RDD后,分别创造出两个PairRDD,然后再对两个PairRDD进行归约(即合并相同Key对应的Value),过程如下图所示:

代码实现如下:

  1. public class SparkRDDDemo {

  2. public static void main(String[] args){

  3. SparkConf conf = new SparkConf().setAppName("SparkRDD").setMaster("local");

  4. JavaSparkContext sc = new JavaSparkContext(conf);

  5. List<Integer> data = Arrays.asList(1,2,3,4,5);

  6. JavaRDD<Integer> rdd = sc.parallelize(data);

  7. //FirstRDD

  8. JavaPairRDD<Integer, Integer> firstRDD = rdd.mapToPair(new PairFunction<Integer, Integer, Integer>() {

  9. @Override

  10. public Tuple2<Integer, Integer> call(Integer num) throws Exception {

  11. return new Tuple2<>(num, num * num);

  12. }

  13. });

  14. //SecondRDD

  15. JavaPairRDD<Integer, String> secondRDD = rdd.mapToPair(new PairFunction<Integer, Integer, String>() {

  16. @Override

  17. public Tuple2<Integer, String> call(Integer num) throws Exception {

  18. return new Tuple2<>(num, String.valueOf((char)(64 + num * num)));

  19. }

  20. });

  21. JavaPairRDD<Integer, Tuple2<Integer, String>> joinRDD = firstRDD.join(secondRDD);

  22. JavaRDD<String> res = joinRDD.map(new Function<Tuple2<Integer, Tuple2<Integer, String>>, String>() {

  23. @Override

  24. public String call(Tuple2<Integer, Tuple2<Integer, String>> integerTuple2Tuple2) throws Exception {

  25. int key = integerTuple2Tuple2._1();

  26. int value1 = integerTuple2Tuple2._2()._1();

  27. String value2 = integerTuple2Tuple2._2()._2();

  28. return "<" + key + ",<" + value1 + "," + value2 + ">>";

  29. }

  30. });

  31. List<String> resList = res.collect();

  32. for(String str : resList)

  33. System.out.println(str);

  34. sc.stop();

  35. }

  36. }

SparkJavaAPI:join的使用相关推荐

  1. ajax请求get方法的封装,使用jQuery中Ajax的封装函数——$.get()

    MATLAB中图片格式与视频格式的转换 参考:https://blog.csdn.net/iracer/article/details/48876473 Matlab-将绘图保存为视频VideoWri ...

  2. 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)

    编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...

  3. python路径拼接os.path.join()函数的用法

    os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不包含'/',则函数会自动加上 2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃 3.如果最后一个组 ...

  4. Python join()方法

    描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法: str.join(sequence).join(sequence) 参数 s ...

  5. SQL性能下降原因及Join查询

    原因 查询语句写得烂 索引失效 关联查询过多(设计缺陷) 服务器调优及各个参数设置(缓冲.线程数等) Join查询的SQL执行顺序 手写 SELECT <select_list> FROM ...

  6. 2021年大数据Flink(四十五):​​​​​​扩展阅读 双流Join

    目录 扩展阅读  双流Join 介绍 Window Join Interval Join ​​​​​​​代码演示1 ​​​​​​​代码演示2 重点注意 扩展阅读  双流Join 介绍 https:// ...

  7. python join 的使用

    join 方法解释 join : 可以以指定的方法来连接字符串 join 的使用 list_a = ["Pythons", "is", "a" ...

  8. Java fork join ForkJoinPool 用法例子

    本例是把一个大的数组求和的计算的大任务分解到在小范围内求和的小任务,然后把这些小任务之和加起来就是所求之结果. 技术:JDK8.0, Java fork-join模式下的RecursiveTask技术 ...

  9. python join split

    本文记录python,join和split函数的用法. 参考 http://blog.csdn.net/doiido/article/details/43538833 http://blog.csdn ...

最新文章

  1. RDKit | 基于片段的分子生成(骨架A+骨架B)
  2. IJCAI主席杨强:联邦学习的最新发展及应用
  3. 老oj1965:polygon半平面交
  4. Python储备知识与装饰器
  5. Spring管理session的一些认识和用法心得
  6. 如何让你的大文件上传变得又稳又快?
  7. linux启动nifi指令,Nifi 组件脚本开发 - ExecuteScript 使用指南 (二)
  8. Linux下自动化测试环境的搭建
  9. 使用mocha进行测试 区块链
  10. 解决ORA-21561: OID generation failed
  11. 按大小排序php,php中按大小进行排序的函数有哪些
  12. angular ts 表格_angular+ng-zorro路由、表格组件
  13. 这3件事发生后,我彻底给 Python“跪了”!
  14. 怎么下载linux历史文件,快速学习Linux-Linux历史
  15. java火车票售票系统_基于java的火车票售票系统,界面Swing
  16. gre包分片及gro、gso等offload特性的应用
  17. linux挂载移动硬盘 格式化_Linux(CentOS)挂载NTFS格式的U盘、移动硬盘
  18. sdut——4541:小志志和小峰峰的日常(取石子博弈模板题 4合1)
  19. 如何使IIS7支持ASP
  20. eva新世纪福音战士_如何客观地评价EVA(新世纪福音战士)?

热门文章

  1. 华为ensp小实验(路由下发+Easy IP+单臂路由+OSPF+Rip)
  2. python笔记之利用BeautifulSoup爬取糗事百科首页段子
  3. c语言学生成绩删除功能,c语言学生成绩管理系统程序设计,有添加,查找,删除,输出,修改,排序等功能!!!...
  4. 搜索长度未知的有序数组java_java二分法实现在有序的数组中定位某数在数组中的位置...
  5. python调参工作都是干啥的_xgboost原理及调参方法-通俗易懂版本
  6. docker hub 代理_MAC版 的最新Docker 2.2版本配置国内代理的解决办法
  7. linux文件 内存映射 锁,linux – mmap:将映射文件立即加载到内存中吗?
  8. les物流执行系统_物流LES系统上线啦
  9. export default (imported as router) was not found_小学生必须知道的英语语法知识:as…as的七大用法...
  10. php 获取对象中的元素个数组长度,获取php类中的数组长度