Spark 学习笔记之 union/intersection/subtract
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)
} }
运行结果:

Spark 学习笔记之 union/intersection/subtract的更多相关文章
- Spark学习笔记3——RDD(下)
目录 Spark学习笔记3--RDD(下) 向Spark传递函数 通过匿名内部类 通过具名类传递 通过带参数的 Java 函数类传递 通过 lambda 表达式传递(仅限于 Java 8 及以上) 常 ...
- spark学习笔记总结-spark入门资料精化
Spark学习笔记 Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用. ...
- Spark学习笔记之SparkRDD
Spark学习笔记之SparkRDD 一. 基本概念 RDD(resilient distributed datasets)弹性分布式数据集. 来自于两方面 ① 内存集合和外部存储系统 ② ...
- Spark学习笔记2——RDD(上)
目录 Spark学习笔记2--RDD(上) RDD是什么? 例子 创建 RDD 并行化方式 读取外部数据集方式 RDD 操作 转化操作 行动操作 惰性求值 Spark学习笔记2--RDD(上) 笔记摘 ...
- Spark学习笔记2(spark所需环境配置
Spark学习笔记2 配置spark所需环境 1.首先先把本地的maven的压缩包解压到本地文件夹中,安装好本地的maven客户端程序,版本没有什么要求 不需要最新版的maven客户端. 解压完成之后 ...
- Spark学习笔记3(IDEA编写scala代码并打包上传集群运行)
Spark学习笔记3 IDEA编写scala代码并打包上传集群运行 我们在IDEA上的maven项目已经搭建完成了,现在可以写一个简单的spark代码并且打成jar包 上传至集群,来检验一下我们的sp ...
- Spark学习笔记-GraphX-1
Spark学习笔记-GraphX-1 标签: SparkGraphGraphX图计算 2014-09-29 13:04 2339人阅读 评论(0) 收藏 举报 分类: Spark(8) 版权声明: ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
随机推荐
- cve_2019_0708_bluekeep复现采坑
0X01 简介 Microsoft Windows是美国微软公司发布的视窗操作系统.远程桌面连接是微软从Windows 2000 Server开始提供的功能组件. 2019年5月14日,微软发布了月度 ...
- Linux入门基础之一
Linux 入门基础 一.Linux 系统安装 安装方法网上很多,请自行百度 二.Linux 基本操作 2.1.GNOME图形界面基本操作 操作类似于Windows系统操作 打开每一个文件夹都会打开一 ...
- css3-旋转的太极图
123 body { background-color: #aaa; } .div { width: 400px; height: 400px; border-radius: 50%; border: ...
- elementUI树状图竖向滚动条和横向滚动条问题
添加样式: <div class="device-tree"> <el-scrollbar style="height:100%"> & ...
- IP地址和int互转
/** * @author: yqq * @date: 2019/5/8 * @description: ip地址与int之间互换 * https://mp.weixin.qq.com/s?__biz ...
- 基于Python的多线程与多进程
1.I/O密集型与计算密集型 多进程适用于I/O密集型 多进程适用于计算密集型 2.没有sleep(T)的多个死循环只能用多进程 3.模块介绍: 1)threading模块(_thread模块已淘汰) ...
- android 和h5互调步骤
1. Android 中调用JS 假如:H5页面中有一段如下JS代码 function h5Test(str){ xxxx... xxxx... } Android中调用方式如下: 步骤一: 启动支持 ...
- iOS -打包上传成功,在"构建版本"一直刷不出来
今天提交版本到appstore,构建版本一直不出来,等了一天也没有出来,其实就是权限问题,iOS13 来了,所以面临的问题随之而来,苹果给邮箱发了这段话: Dear Developer,We iden ...
- Phpstudy被暴存在隐藏后门-检查方法
Phpstudy被暴存在隐藏后门-检查方法 一.事件背景 Phpstudy软件是国内的一款免费的PHP调试环境的程序集成包,通过集成Apache.PHP.MySQL.phpMyAdmin.ZendOp ...
- 苹果系统IOS第三方管理工具——imazing 优秀
iMazing 是一款 Windows.macOS 平台的 iPhone.iPad 管理工具,可以进行文件.音乐.视频传输,备份与还原数据,并且可以管理已安装应用,比如重新安装那些已下架的应用,是「史 ...