大数据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博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关推荐
freejackman7 分钟前
【架构篇】双遍历 + 多栈协同:手撸 SQL 血缘引擎的架构思考
java·大数据·数据库·hive·sql·架构·spark
Teable任意门互动23 分钟前
破解多平台数据不通!江浙沪跨境电商外贸业务私有化部署方案|任意门互动科技
大数据·人工智能·科技·信息可视化·信息与通信
abigalexy1 小时前
Flink核心疑难问题、踩坑盲点-汇总
大数据·flink·big data·bigdata
Sayai1 小时前
Kafka 跨数据中心日志同步实战:MirrorMaker 2 选型对比 + Flink 中继任务落地(双中心互备与消费者组隔离避坑)
大数据·运维·分布式·flink·kafka·消息队列·高可用
北风toto2 小时前
Elasticsearch 8.2.3 快照迁移实战:从备份到恢复的完整指南
大数据·elasticsearch·jenkins
陈年老古董2 小时前
Spark 3.1.3 集群搭建 + Spark-SQL 整合 Hive 记录
hive·sql·spark
roman_日积跬步-终至千里2 小时前
数仓方法论(二):指标设计与规范化——让经营目标成为共同的衡量规则
大数据
Kari113 小时前
Dify多租户架构:从单团队到SaaS化服务
大数据·人工智能·架构
大大大大晴天12 小时前
从 Prompt 到 Tool Calling:AI Agent 如何稳定连接程序世界
大数据·agent
key_3_feng13 小时前
反馈闭环:Agent 自我进化的真正引擎
大数据·agent