前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Transformation转换算子之双Value类型交互

Transformation转换算子之双Value类型交互

作者头像
用户1483438
发布2022-04-27 14:59:15
1980
发布2022-04-27 14:59:15
举报
文章被收录于专栏:大数据共享大数据共享

intersection()交集

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

交集
交集

交集:只有3

案例演示

代码语言:javascript
复制
  @Test
  def intersection(): Unit ={

    // 创建sc
    val conf =new SparkConf().setMaster("local[4]").setAppName("test")
    val sc=new SparkContext(conf)

    // 集合1
    val list1=List(1,4,5,6,9,10)
    val rdd1: RDD[Int] = sc.parallelize(list1)

    // 集合2
    val list2=List(2,8,6,5,7,3)
    val rdd2: RDD[Int] = sc.parallelize(list2)

    //求算交集部分
    val value: RDD[Int] = rdd1.intersection(rdd2)

    println(value.collect.toList)
  }

结果

代码语言:javascript
复制
List(5, 6)

union()并集

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

并集
并集

并集:1、2、3全包括

代码语言:javascript
复制
  @Test
  def union(): Unit ={

    // 创建sc
    val conf =new SparkConf().setMaster("local[4]").setAppName("test")
    val sc=new SparkContext(conf)

    // 集合1
    val list1=List(1,4,5,6,9,10)
    val rdd1: RDD[Int] = sc.parallelize(list1)

    // 集合2
    val list2=List(2,8,6,5,7,3)
    val rdd2: RDD[Int] = sc.parallelize(list2)

    //求算并集
    val value: RDD[Int] = rdd1.union(rdd2)

    println(value.collect.toList)
  }

结果

代码语言:javascript
复制
List(1, 4, 5, 6, 9, 10, 2, 8, 6, 5, 7, 3)

subtract()差集

计算差的一种函数,去除两个RDD中相同元素,不同的RDD将保留下来

差集
差集

差集:只有1

案例演示:

代码语言:javascript
复制
  @Test
  def subtract(): Unit ={

    // 创建sc
    val conf =new SparkConf().setMaster("local[4]").setAppName("test")
    val sc=new SparkContext(conf)

    // 集合1
    val list1=List(1,4,5,6,9,10)
    val rdd1: RDD[Int] = sc.parallelize(list1)

    // 集合2
    val list2=List(2,8,6,5,7,3)
    val rdd2: RDD[Int] = sc.parallelize(list2)

    //求算差集
    val value1: RDD[Int] = rdd1.subtract(rdd2)
    println(value1.collect.toList)

   val value2: RDD[Int] = rdd2.subtract(rdd1)
    println(value2.collect.toList)
  }

求算:rdd1的差集

代码语言:javascript
复制
val value1: RDD[Int] = rdd1.subtract(rdd2)
println(value1.collect.toList)

结果

代码语言:javascript
复制
List(4, 1, 9, 10)

求算:rdd2的差集

代码语言:javascript
复制
val value2: RDD[Int] = rdd1.subtract(rdd2)
println(value2.collect.toList)

结果

代码语言:javascript
复制
List(8, 2, 3, 7)

zip()拉链

该操作可以将两个RDD中的元素,以键值对的形式进行合并。其中,键值对中的Key为第1个RDD中的元素,Value为第2个RDD中的元素。 将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常。

案例:相亲配对

代码语言:javascript
复制
  @Test
  def zip(): Unit ={
    // 创建sc
    val conf =new SparkConf().setMaster("local[4]").setAppName("test")
    val sc=new SparkContext(conf)

    val boys=List("富贵","二狗子","风少")
    val rdd1: RDD[String] = sc.parallelize(boys)
    
    val girls=List("春娇","小花","翠莲")
    val rdd2: RDD[String] = sc.parallelize(girls)


    val value: RDD[(String, String)] = rdd1.zip(rdd2)
    
    println(value.collect.toList)
  }

结果

代码语言:javascript
复制
List((富贵,春娇), (二狗子,小花), (风少,翠莲))

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • intersection()交集
  • union()并集
  • subtract()差集
  • zip()拉链
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档