0


Spark框架——RDD入门及三种算子

RDD入门及三种算子

//Map算子

  @TestdefmapTest():Unit={//1.创建RDD
    val rdd1:RDD[Int]= sc.parallelize(Seq(1,2,3))//2.执行Map操作
    val rdd2:RDD[Int]= rdd1.map(item => item *10)//3.得到结果
    val result:Array[Int]= rdd2.collect()

    result.foreach(goods => println(goods))}

在这里插入图片描述

@Test//flatMap:1.把RDD中的数据转换为数据或者集合形式 2.把集合或者数组展开 3. 生成了多条数据 flatMap是一对多
  defflatMapTest():Unit={//1.创建RDD
    val rdd1:RDD[String]= sc.parallelize(Seq("hello lily","hello lucy","hello tim"))//2.处理数据
    val rdd2:RDD[String]= rdd1.flatMap(item => item.split(" "))//拆分数组为一个个单词
    //3.得到结果
    val result:Array[String]= rdd2.collect()
    result.foreach(item => println(item))//4.关闭sc
    sc.stop()}

在这里插入图片描述

@TestdefreduceByKeyTest():Unit={//1.创建RDD
    val rdd1:RDD[String]= sc.parallelize(Seq("hello lily","hello lucy","hello tim"))//2.处理数据
    val rdd2:RDD[(String,Int)]= rdd1.flatMap(item => item.split(" ")).map(item =>(item,1))//元组的形式
      .reduceByKey((curr, agg)=> curr + agg)//curr代表第一次执行的value值,agg是局部结果 ,局部结果变成整体结果
    //reduceByKey第一步先按照key分组,然后对每一组进行聚合,得到结果
    //3.得到结果
    val result:Array[(String,Int)]= rdd2.collect()
    result.foreach(item => println(item))//4.关闭sc
    sc.stop()}

在这里插入图片描述


本文转载自: https://blog.csdn.net/m0_62491934/article/details/123739126
版权归原作者 那人独钓寒江雪. 所有, 如有侵权,请联系我们删除。

“Spark框架——RDD入门及三种算子”的评论:

还没有评论