Spark的RDD转换算子-双value型

Spark的RDD转换算子-双value型

双value型其实就是交集、并集、差集、拉链等操作

一、交集:intersection

函数签名

def intersection(other: RDD[T]): RDD[T] 

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

val rdd1 = sparkContext.makeRDD(List(1,2,3,4)) 
val rdd2 = sparkContext.makeRDD(List(3,4,5,6)) 
val newRDD = rdd1.intersection(rdd2) 

二、并集:union

函数签名

def union(other: RDD[T]): RDD[T] 

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

val rdd1 = sparkContext.makeRDD(List(1,2,3,4)) 
val rdd2 = sparkContext.makeRDD(List(3,4,5,6))
val newRDD = rdd1.union(rdd2)

三、差集:subtract

函数签名

def subtract(other: RDD[T]): RDD[T] 

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

val rdd1 = sparkContext.makeRDD(List(1,2,3,4)) 
val rdd2 = sparkContext.makeRDD(List(3,4,5,6))
val newRDD = rdd1.subtract(rdd2)

四、拉链:zip

函数签名

def zip[U: ClassTag](other: RDD[U]): RDD[(T, U)] 

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

val rdd1 = sparkContext.makeRDD(List(1,2,3,4)) 
val rdd2 = sparkContext.makeRDD(List(3,4,5,6))
val newRDD = rdd1.zip(rdd2)

注意:交、并、差集要求两个数据集类型是一致的,而拉链则可以不一致,但是拉链要求数据源的分区数量保持一致,每个分区的元素保持一致

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧码文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值