开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:Rdd 算子_转换_mapvalues】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/689/detail/11970
Rdd 算子_转换_mapvalues
内容介绍:
一、序言
二、mapvalues 的使用
一、序言
现在有一个小的需求,假如 rdd 当中存放的是123这种数据,通过 map 算子给这每一条数据转成其他的形式,比如10.20.30,但是加入存放的是:a,1 b,2 c,3如果存放的是这种数据,希望指出它的翻译,那么该怎么做到呢?
有没有一个算法能够通过一个算子直接就把这个 a,1转成 a,10,接下来我们要是用 mapvalues 就是只转 values,也就是说正常情况下这个 value 是123,那么转成10 20 30这种形式。
二、mapvalues 的使用
进入代码当中,首先写上注解,接下来第一步是定义集合,第一步是定义集合,生成 seq,存放 key value 性数据即(a,1 b,2 c,3),就可以把1转成10,后面同理。使用 mapvalues,也接收了一个函数,这个函数接收的参数是int类型,是整个一条数据的泛型,即里面接收的 item 直接就是 key values 数据,直接 item 乘10,并且 collect。并且打印每一条数据,也可以简化写法。
@Test
def mapValues(): Unit=
sc.parallelize(Seq(("a",1), ("b",2),("c",3))),mapValues( item => item
★ 10)
.collect()
.foreach(printin()
运行结果如下:
结果无误,mapvalues 也是 map,只是 map 作用于整条数据,而 mapvalues 作用于 value。