当前位置:   article > 正文

Spark双集合(RDD)之间的操作-差集,交集,合集,笛卡尔积等_spark 差集

spark 差集
def main(args:Array[String]){
        // 1. 创建 SparkConf对象, 并设置 App名字
        val conf:SparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount");
        // 2. 创建SparkContext对象
        val sc = new SparkContext(conf);
        // 3. 使用sc创建RDD并执行操作
        val res1 = sc.parallelize(Array(1,2,3,4),2);
        val res2 = sc.parallelize(Array(1,1,3,5),2);
        //1.
        //union :返回这个RDD和另一个RDD的并集。任何相同的元素将出现多次(可以使用' .distinct() '消除重复)。
        //union结果 1 2 3 4 1 1 3 5
        //var rdd = res1.union(res2).collect();
        
        //2.
        //subtract:返回一个RDD,其中包含来自“this(res1)”而不在“other(res2)”中的元素
        //使用' this(res1) ' partitioner/分区大小,即使' other(res2) '很大,得到的RDD将是<= us(res1)。
        //subtract:结果 2 4
        //var rdd = res1.subtract(res2).collect();
        
        //3.
        //intersection:返回这个RDD和另一个RDD的交集。即使输入RDDs包含重复元素,输出也不会包含重复元素。
        //intersection:结果 1 3
        //var rdd = res1.intersection(res2).collect();
        
        //4.
        //cartesian:返回这个RDD和另一个RDD的笛卡尔积,也就是所有对的RDD元素(a, b),其中a在this(res1)中,b在other(res2)中。
        //cartesian结果:(1,1)(1,1)(2,1)(2,1)(1,3)(1,5)(2,3)(2,5)(3,1)(3,1)(4,1)(4,1)(3,3)(3,5)(4,3)(4,5)
        //var rdd = res1.cartesian(res2).collect();
        
        //5.
        //zip:将这个RDD与另一个RDD压缩,返回每个RDD中的第一个元素、每个RDD中的第二个元素的键值对,以此类推。
        //要求这两个RDDs有*相同数量的分区,每个分区中相同数量的元素。类似还有zipWithIndex, zipPartitions
        //zip结果:(1,1)(2,1)(3,3)(4,5)
        var rdd = res1.zip(res2).collect();
        //4.循环打印
        rdd.foreach(println);
        //5.停止
        sc.stop();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/670653
推荐阅读
相关标签
  

闽ICP备14008679号