union/intersection/subtract:

import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession object TransformationsDemo {
def main(args: Array[String]): Unit = {
val sparkSession = SparkSession.builder().appName("TransformationsDemo").master("local[1]").getOrCreate()
val sc = sparkSession.sparkContext
testUnion(sc)
testIntersection(sc)
testSubtract(sc) } private def testSubtract(sc: SparkContext) = {
val rdd1 = sc.parallelize(1 to 3, 1)
val rdd2 = sc.parallelize(3 to 5, 1)
//返回在当前RDD中出现,并且不在另一个RDD中出现的元素,不去重。
rdd1.subtract(rdd2).collect().foreach(println)
println(s"partitions: ${rdd1.subtract(rdd2, 1).partitions.size}")
println(s"partitions: ${rdd1.subtract(rdd2, 2).partitions.size}") val rdd3 = sc.parallelize(List(List(1, 2, 3), List(4, 5, 6)), 1)
val rdd4 = sc.parallelize(List(List(4, 5, 6), List(7, 8, 9)), 1)
rdd3.subtract(rdd4).collect().foreach(println)
} private def testIntersection(sc: SparkContext) = {
val rdd1 = sc.parallelize(1 to 2, 1)
val rdd2 = sc.parallelize(3 to 5, 1)
//返回两个RDD的交集,并且去重。
rdd1.intersection(rdd2).collect().foreach(println)
println(s"partitions: ${rdd1.intersection(rdd2, 1).partitions.size}")
println(s"partitions: ${rdd1.intersection(rdd2, 2).partitions.size}") val rdd3 = sc.parallelize(List(List(1, 2, 3), List(4, 5, 6)), 1)
val rdd4 = sc.parallelize(List(List(4, 5, 6), List(7, 8, 9)), 1)
rdd3.intersection(rdd4).collect().foreach(println)
} private def testUnion(sc: SparkContext) = {
val rdd1 = sc.parallelize(1 to 3, 1)
val rdd2 = sc.parallelize(3 to 5, 1)
//将两个RDD进行合并,不去重。
rdd1.union(rdd2).collect().foreach(println) val rdd3 = sc.parallelize(List(List(1, 2, 3), List(4, 5, 6)), 1)
val rdd4 = sc.parallelize(List(List(4, 5, 6), List(7, 8, 9)), 1)
rdd3.union(rdd4).collect().foreach(println)
} }

运行结果:

最新文章

  1. python迭代器与iter()函数实例教程
  2. treap树---Double Queue
  3. 实现LoadRunner多个场景的顺序执行(命令行)
  4. linux清除swap
  5. 使用git代替FTP部署代码到服务器的例子
  6. lintcode:哈希函数
  7. hdu2074java
  8. jquery获取元素到屏幕底的可视距离
  9. 原生的ajax(json)
  10. 从零开始理解JAVA事件处理机制(3)
  11. jquery.form.js+jquery.validation.js实现表单校验和提交
  12. ngnix 反向代理来解决前端跨域问题
  13. JAVAEE 第八周
  14. httpd常见配置
  15. 【代码笔记】Web-HTML-链接
  16. (转)以太坊(Ethereum ETH)的奖励机制
  17. [1] 注解(Annotation)-- 深入理解Java:注解(Annotation)基本概念
  18. 6、JVM--类文件结构(上)
  19. Android开发——异步任务中Activity销毁时的问题
  20. 【LOJ】 #2033. 「SDOI2016」生成魔咒

热门文章

  1. CodeForces 375D Tree and Queries 莫队||DFS序
  2. CH 4302 Interval GCD 题解
  3. Service:让客户端发现pod并与之通信
  4. kubernetes Value:将磁盘挂载到容器,PV,PVC
  5. CVE-2018-14418 擦出新火花
  6. jquery插件之poshytip
  7. gallery的简单使用方法
  8. Java中的java.lang.Class API 详解
  9. Net基础篇_学习笔记_第十一天_面向对象(静态与非静态 static)
  10. Spring+Mybatis整合的练手小项目(一)项目部署