Spark 学习笔记之 union/intersection/subtract
2024-09-01 10:02:50
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)
} }
运行结果:
最新文章
- python迭代器与iter()函数实例教程
- treap树---Double Queue
- 实现LoadRunner多个场景的顺序执行(命令行)
- linux清除swap
- 使用git代替FTP部署代码到服务器的例子
- lintcode:哈希函数
- hdu2074java
- jquery获取元素到屏幕底的可视距离
- 原生的ajax(json)
- 从零开始理解JAVA事件处理机制(3)
- jquery.form.js+jquery.validation.js实现表单校验和提交
- ngnix 反向代理来解决前端跨域问题
- JAVAEE 第八周
- httpd常见配置
- 【代码笔记】Web-HTML-链接
- (转)以太坊(Ethereum ETH)的奖励机制
- [1] 注解(Annotation)-- 深入理解Java:注解(Annotation)基本概念
- 6、JVM--类文件结构(上)
- Android开发——异步任务中Activity销毁时的问题
- 【LOJ】 #2033. 「SDOI2016」生成魔咒
热门文章
- CodeForces 375D Tree and Queries 莫队||DFS序
- CH 4302 Interval GCD 题解
- Service:让客户端发现pod并与之通信
- kubernetes Value:将磁盘挂载到容器,PV,PVC
- CVE-2018-14418 擦出新火花
- jquery插件之poshytip
- gallery的简单使用方法
- Java中的java.lang.Class API 详解
- Net基础篇_学习笔记_第十一天_面向对象(静态与非静态 static)
- Spring+Mybatis整合的练手小项目(一)项目部署