开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段:RDD 入门_FlatMap 算子本地文件读取】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/688/detail/11954
RDD 入门_FlatMap 算子
flatmap 算子
Flatmap 有转换的作用,但是它可以把数组和集合展开,并且 flatmap 中的函数一般也是集合或者数组。
主要作用:
flatmap 算子和 map 算子类似,但是 flatmap 是一对多的情况。
由图可知:
左边框架为 RDD1, 右边框架为 RDD2,中间为计算过程。
将 RDD1 调离 flatmap 时,本质上经历三步骤:
rdd1 编写,将 rdd1中的数据转换为 list 形式,调用字符串的 split 即返回一个 array ,然后将 list 展平成三条或者两条。
一条为: “Holle”,
一条为: “Lily”.
其内部分为两步,首先把 rdd 中的数据转换成为一个数组形式或集合形式,其次把集合或者数组展开,最后生成了多条数据。
进入 ide 创建新的方法,
编写如下:
@Test
Def flatmapTest( ):Unit ={
//1.创建 RDD
val rdd1 = sc.parallelize(Seq(“Hello lily”, “Hello lucy”,
“Hello Tim”))
//2.处理数据
val rdd2 =rdd1.flatmap(item =>item.split(regex= “”))
//3.得到结果
val result = rdd2.collect()
result.foreach(item =>println(item))
//4.关闭 sc
sc.stop()
运行结果如图所示: