Spark---RDD(双值类型转换算子)

文章目录

  • 1.RDD双值类型算子
      • [1.1 intersection](#1.1 intersection)
      • [1.2 union](#1.2 union)
      • [1.3 subtract](#1.3 subtract)
      • [1.4 zip](#1.4 zip)

1.RDD双值类型算子

RDD双Value算子就是对两个RDD进行操作或行动,生成一个新的RDD。

1.1 intersection

对源 RDD 和参数 RDD 求交集后返回一个新的 RDD

函数定义:

def intersection(other: RDDT): RDDT

复制代码
    //建立与Spark框架的连接
    val rdd = new SparkConf().setMaster("local[*]").setAppName("RDD") //配置文件
    val sparkRdd = new SparkContext(rdd) //读取配置文件

    val data1: RDD[Int] = sparkRdd.makeRDD(List(1, 2, 3, 4))
    val data2: RDD[Int] = sparkRdd.makeRDD(List(3, 4, 5, 6))
    val dataRdd = data1.intersection(data2)
    dataRdd.collect().foreach(println)

    sparkRdd.stop(); //关闭连接

运行结果:

1.2 union

对源 RDD 和参数 RDD 求并集后返回一个新的 RDD

函数定义:

def union(other: RDDT): RDDT

复制代码
    val data1: RDD[Int] = sparkRdd.makeRDD(List(1, 2, 3, 4))
    val data2: RDD[Int] = sparkRdd.makeRDD(List(3, 4, 5, 6))
    val dataRdd = data1.union(data2)
    dataRdd.collect().foreach(println)

1.3 subtract

以一个 RDD 元素为主,去除两个 RDD 中重复元素,将其他元素保留下来。求差集

函数定义:

def subtract(other: RDDT): RDDT

复制代码
    val data1: RDD[Int] = sparkRdd.makeRDD(List(1, 2, 3, 4))
    val data2: RDD[Int] = sparkRdd.makeRDD(List(3, 4, 5, 6))
    val dataRdd = data1.subtract(data2)
    dataRdd.collect().foreach(println)

1.4 zip

将两个 RDD 中的元素,以键值对的形式进行合并。其中,键值对中的 Key 为第 1 个 RDD中的元素,Value 为第 2 个 RDD 中的相同位置的元素。

函数定义:

def zipU: ClassTag(other: RDDU): RDD(T, U)

复制代码
    val data1: RDD[Int] = sparkRdd.makeRDD(List(1, 2, 3, 4))
    val data2: RDD[Int] = sparkRdd.makeRDD(List(5,6,7,8))
    val dataRdd = data1.zip(data2)
    dataRdd.collect().foreach(println)


注意:如果两个RDD类型不一样,则会报错

复制代码
    val data1: RDD[Int] = sparkRdd.makeRDD(List(1, 2, 3, 4))
    val data2: RDD[Int] = sparkRdd.makeRDD(List("hello", "scala", "hello", "Java"))
    val dataRdd = data1.zip(data2)
    dataRdd.collect().foreach(println)
相关推荐
ifenxi爱分析23 分钟前
GEO市场规模有多大?2026—2030年中国GEO市场规模预测
大数据·人工智能
lingran__30 分钟前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令
轻揉小乔 真新人1 小时前
T-SQL查询进阶—理解SQL Server中的锁
服务器·数据库·sql
用户3610588626121 小时前
Spark 核心之 Stage 并行度划分及优化详解
spark
AI08012 小时前
模型上线只是开始:AI可观测性如何成为企业AI治理的必选项
大数据·人工智能
贾天佑忆月 迷失的昵2 小时前
客户端与服务器持续同步解析(轮询,comet,WebSocket)
运维·服务器·websocket
zhangfeng11332 小时前
宝塔8 升级到 11导致 服务器无法访问外网dns失效了,无法访问bt.cn 解决方法 测试通过
运维·服务器
imbackneverdie2 小时前
撰写系统性综述/叙述性综述,如何搭建清晰的领域发展脉络?
大数据·人工智能·aigc·论文·科研·ai写作·学术
2601_963282772 小时前
寒地专网通信实战:对讲机技术选型、组网优化与东北多行业落地全指南
大数据·数据库·人工智能
广凌股份(广凌科技)3 小时前
广凌智慧大内控一体化平台:告别纸上内控,把握真实运行状态
大数据·人工智能