栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

RDD入门及三种算子
//Map算子

  @Test
  def mapTest(): 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是一对多
  def flatMapTest(): 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()
  }

 @Test
  def reduceByKeyTest(): 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()
  }
  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号