spark常用RDD算子 - distinct,union,intersection,subtract,cartesian

news/2023/6/5 21:12:00

distinct

distinct用于去重, 我们生成的RDD可能有重复元素,使用distinct方法可以去掉重复元素, 不过此方法涉及到混洗,操作开销很大 

JavaRDD<String> RDD1 = javaSparkContext.parallelize(Arrays.asList("aa", "aa", "bb", "cc", "dd"));
JavaRDD<String> distinctRDD = RDD1.distinct();
List<String> collect = distinctRDD.collect();---------输出----------
aa, dd, bb, cc



union

两个RDD进行合并不会去重

JavaRDD<String> RDD1 = javaSparkContext.parallelize(Arrays.asList("aa", "aa", "bb", "cc", "dd"));
JavaRDD<String> RDD2 = javaSparkContext.parallelize(Arrays.asList("aa","dd","ff"));JavaRDD<String> unionRDD = RDD1.union(RDD2);
List<String> collect = unionRDD.collect();-----------输出---------
aa, aa, bb, cc, dd, aa, dd, ff


 

intersection

RDD1.intersection(RDD2) 返回两个RDD的交集,并且去重 
intersection 需要混洗数据,比较浪费性能 

JavaRDD<String> RDD1 = javaSparkContext.parallelize(Arrays.asList("aa", "aa", "bb", "cc", "dd"));
JavaRDD<String> RDD2 = javaSparkContext.parallelize(Arrays.asList("aa","dd","ff"));
JavaRDD<String> intersectionRDD = RDD1.intersection(RDD2);
List<String> collect = intersectionRDD.collect();-------------输出-----------
aa dd


 

subtract

RDD1.subtract(RDD2),返回在RDD1中出现,但是不在RDD2中出现的元素,不去重 

JavaRDD<String> RDD1 = javaSparkContext.parallelize(Arrays.asList("aa", "aa", "bb","cc", "dd"));
JavaRDD<String> RDD2 = javaSparkContext.parallelize(Arrays.asList("aa","dd","ff"));JavaRDD<String> subtractRDD = RDD1.subtract(RDD2);
List<String> collect = subtractRDD.collect();------------输出-----------------
bb  cc 


 

cartesian

RDD1.cartesian(RDD2) 返回RDD1和RDD2的笛卡儿积这个开销非常大

JavaRDD<String> RDD1 = javaSparkContext.parallelize(Arrays.asList("1", "2", "3"));
JavaRDD<String> RDD2 = javaSparkContext.parallelize(Arrays.asList("a","b","c"));
JavaPairRDD<String, String> cartesian = RDD1.cartesian(RDD2);List<Tuple2<String, String>> collect1 = cartesian.collect();
for (Tuple2<String, String> tp:collect1) {System.out.println("("+tp._1+" "+tp._2+")");
}------------输出-----------------
(1 a)
(1 b)
(1 c)
(2 a)
(2 b)
(2 c)
(3 a)
(3 b)
(3 c)

 


https://dhexx.cn/news/show-18482.html

相关文章

selectKey返回最近插入的id

SelectKey返回最近插入的id一、第一种使用实体类对象1.sql获取2.测试数据3.结果截图二、第二种使用Map2.测试数据3.结果截图一、第一种使用实体类对象 1.sql获取 <insert id"addUser" >insert into user (username,password,name,create_time,sex,phone,depar…

2005年江苏专转本计算机解析,2005-2012年江苏专转本计算机基础历年真题__附答案...

2005-2012年江苏专转本计算机基础历年真题__附答案 (72页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;19.90 积分2005-2012年江苏专转本计算机基础历年真题目录2005年“专转本”计算机应用基础统一…

将html转换为word文档的几种方式

1 基于wps直接将页面信息下载成word文档 1 public void test()2 {3 4 WPS.Application wps null;5 try6 {7 wps new WPS.Application();8 }9 catch (Exception ex) 10 { …

xp系统打印机服务器不可用,WinXP系统添加打印机操作无法完成如何解决?

最近有WinXP系统用户反映&#xff0c;添加打印机的时候&#xff0c;出现提示“操作无法完成。打印后台程序服务没有运行”&#xff0c;导致打印机添加失败&#xff0c;用户并不知道这是怎么回事&#xff0c;也不知道该如何解决&#xff0c;为此非常苦恼。下面&#xff0c;针对这…

SpringBoot整合SpringSecurity+Redis权限控制

SpringBoot整合SpringSecurityRedis权限控制1、认识SpringSecurity2、效果截图2.1、登录接口2.2、注册接口2.3、管理员权限接口2.4、普通用户权限接口2.5、公共接口接口2.6、Redis缓存效果3、前期准备工作3.1、导入相关依赖3.2、创建数据库4、核心逻辑5、项目结构6、代码6.1、E…

unturned服务器消息设置,unturned服务器怎么设置

unturned服务器怎么设置 内容精选换一换企业主机安全通过云审计服务(Cloud Trace Service&#xff0c;CTS)为用户提供云服务资源的操作记录&#xff0c;记录内容包括用户从管理控制台或者开放API发起的云服务资源操作请求以及每次请求的结果&#xff0c;供用户查询、审计和回溯…

XSS与字符编码的那些事儿

目录 0x00:基本介绍 0x01:html实体编码 0x02:新增的实体编码 实体编码变异以及浏览器的某些工作原理&#xff01; 0x03:javascript编码 0x04:base64编码 0x05:闲扯0x00基本介绍 提起XSS 想到的就是插入字符字符编码与各种解析了&#xff01; 这也就是各种xss编码插件跟工具出世…

SpringBoot整合EasyExcel+MyBatis-Plus实现Excel批量导入和导出

SpringBoot整合EasyExcelMyBatis-Plus实现Excel批量导入和导出一、前期配置1、依赖二、使用步骤1、Entity实体类2、Mapper层3、自定义AnalysisEventListener4、Controller层5、Util工具类三、数据与接口截图1、Excel2、数据库中信息3、批量导入接口4、批量导出Excel接口2022年8…

spark常用RDD算子 - foldByKey

foldByKey函数是对PairRDD<K, V>&#xff0c;对V做合并处理 可以看到&#xff0c;第一个参数是zeroValue&#xff0c;这个就是用来对原始的V做合并操作的&#xff0c;后面的参数是一个JFunction操作。 对于一个PairRDD&#xff0c;如Array(("A",0),("A&…

SpringBoot整合Shiro+Redis框架权限管理

SpringBoot整合ShiroRedis框架权限管理一、导入依赖二、Config类2.1、自定义realm2.2、自定义AuthorizationFilter2.3、自定义SessionIdGenerator2.4、自定义DefaultWebSessionManager2.5、ShiroConfig三、登陆注册及其他接口3.1、Controller层3.2、Service层3.2.1、UserServic…