开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段:RDD 入门_Map 算子】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/688/detail/11953
RDD 入门_Map 算子
rdd 算子的使用以及算子的根本原理即:
rdd 算子操作, wordcount 中的三个算子 map,flatmap,reduceByKey。
了解这三个算子怎么使用以及掌握如何通过 map 算子将一份数据转换为另外一种形式,通过 flatmap 掌握在转换的同时,如何进行展开,通过学习 reduceByKey 掌握初级聚合。
map,flatmap 可看作 map,reduceByKey 看作 reduce ,通过本节内容了解 spark 本身支持 map、reduce 。
内容介绍:
一、Map 算子
二、Flatmap 算子
三、ReduceByKey 算子
一、Map 算子
主要作用:一份数据转换为另一份数据,即将 RDD1 的数据转换为 RDD2 中的数据。它们的转换规则是 map 中接收的函数即 map 算子。
调用命令: def map[U:ClassTag](f:T-U):RDD[U],
编写如下:
首先命名为 def mapTest ,为其增加注释 @Test ,
1.创建 RDD,
2.执行 map 操作,
3.得到结果。
创建 val rdd1 =sc. Parallelize 本地集合来创建,需求是将括号中的数字均放大10倍,通过 rdd1.map 得到 rdd2 接收 function 直接表达,比如 item=> 这样的参数,函数值是 item*10 ,此操作无法获取结果即算子的操作不会直接获得结果,只有需要时才会计算结果,通过 rdd2.collect() 收集结果 result ,然后打印结果 print(result) ,等待结果。
结果不明显,将 print(result) 改为 result.foreach(item => println(item)) 注意其类型为 scala 的 Array 类型。
与 spark 无关,它是 scala 本身的集合的 API ,运行结果,代码无误。
@Testdef mapTest():Unit ={
//1.创建 RDD
val rdd1 =sc. parallelize(Seq(1,2,3))
//2.执行 map 操作
val rdd2 = rdd1.map(item=>item*10)
//3.得到结果
算子的操作不会直接获得结果,只有需要时才会计算结果如:
val result:Array[Int] = rdd2.collect()
result.foreach(item => println(item))
}
运行如图所示:
得到结果为:
10,20,30,说明该代码无误。