大数据Spark(六十九):Transformation转换算子intersection和subtract使用案例

文章目录

Transformation转换算子intersection和subtract使用案例

一、intersection使用案例

二、subtract使用案例


Transformation转换算子intersection和subtract使用案例

一、intersection使用案例

取两个RDD数据集的交集。

注意:返回新的RDD分区数与父RDD分区多的一致。

Java代码:

java 复制代码
SparkConf conf = new SparkConf().setMaster("local").setAppName("IntersectionTest");
JavaSparkContext sc = new JavaSparkContext(conf);

JavaRDD<String> rdd1 = sc.parallelize(Arrays.asList("a","b","c","d"), 3);
JavaRDD<String> rdd2 = sc.parallelize(Arrays.asList("c","d","e","f"), 4);

//intersection算子:对两个RDD进行intersection操作,返回一个新的RDD,RDD的分区数与父RDD分区数多的保持一致。
JavaRDD<String> rdd3 = rdd1.intersection(rdd2);
System.out.println("rdd3 分区数:" + rdd3.getNumPartitions());

rdd3.foreach(x-> System.out.println(x));

sc.stop();

Scala代码:

Scala 复制代码
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("IntersectionTest")
val sc = new SparkContext(conf)
val rdd1: RDD[String] = sc.parallelize(List("a", "b", "c", "d"), 4)
val rdd2: RDD[String] = sc.parallelize(List("c", "d", "e", "f"), 3)

//intersection算子:对两个RDD进行intersection操作,返回一个新的RDD,RDD的分区数与父RDD分区数多的保持一致。
val rdd3: RDD[String] = rdd1.intersection(rdd2)
println(s"rdd3 分区数:${rdd3.getNumPartitions}")

rdd3.foreach(println)

sc.stop()

二、subtract使用案例

取两个RDD数据集的差集,rdd1.subtract(rdd2):返回rdd1中有但rdd2中没有的元素。

注意:生成RDD的分区数与subtract前面的RDD的分区数一致。

Java代码:

java 复制代码
SparkConf conf = new SparkConf().setMaster("local").setAppName("SubtractTest");
JavaSparkContext sc = new JavaSparkContext(conf);

JavaRDD<String> rdd1 = sc.parallelize(Arrays.asList("a","b","c","d"), 3);
JavaRDD<String> rdd2 = sc.parallelize(Arrays.asList("c","d","e","f"), 4);

//subtract算子:对两个RDD进行取差集操作,返回一个新的RDD,RDD的分区数与父RDD分区数多的保持一致。
JavaRDD<String> rdd3 = rdd1.subtract(rdd2);
System.out.println("rdd3 分区数:" + rdd3.getNumPartitions());
rdd3.foreach(x-> System.out.println(x));
sc.stop();

Scala代码:

java 复制代码
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("SubtractTest")
val sc = new SparkContext(conf)

val rdd1: RDD[String] = sc.parallelize(List("a", "b", "c", "d"), 3)
val rdd2: RDD[String] = sc.parallelize(List("c", "d", "e", "f"), 4)

//subtract算子:对两个RDD进行取差集操作,返回一个新的RDD,生成RDD的分区数与subtract前面的RDD的分区数一致。
val rdd3: RDD[String] = rdd1.subtract(rdd2)
println(s"rdd3 分区数:${rdd3.getNumPartitions}")

rdd3.foreach(println)
sc.stop()

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关推荐
大大大大晴天4 小时前
从 HDFS 到对象存储:计算存储分离如何重塑云原生大数据底座
大数据
这个DBA有点耶5 小时前
2026年分布式数据库有哪些主流选择?先评估这5个维度再决定
数据库·分布式·dba
用户36105886261213 小时前
SparkStreaming 之 updateStateByKey 算子详解及代码实现
大数据·spark
咖啡屋和酒吧15 小时前
“隐性肩颈紧张”正在透支精力|没有酸痛,不代表肩颈处于健康状态
大数据·精选
港股研究社15 小时前
专注履约底座,顺丰同城在即时零售效率时代提升增长动能
大数据·人工智能
AI_yangxi17 小时前
短视频矩阵系统选哪家
大数据·人工智能·矩阵
lupai1 天前
手机在网状态接口实测效果与质量评估
大数据·python·智能手机·api接口
大模型丫丫1 天前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器
大大大大晴天1 天前
每天认识一个组件:SQL网关Apache Kyuubi
大数据
2601_962218471 天前
万象生鲜系统冷链物联网接入技术实现生鲜企业温控管理数字化
大数据·运维·微服务·云原生·架构