全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析师(CDA)专版
1545 1
2016-03-28

       CDA数据分析师学习之路出系列了,每篇都有数据分析、大数据相关文章和视频,各大名师主讲,每周一、二、四、五更新!CDA数据分析师学习之路已经更新到CDA数据分析师学习之路(32)了,欢迎观看学习!
       另外欢迎各位坛友投稿数据分析相关视频和文章,一经选用将赠送100论坛币和现金奖励、并有机会获赠一套数据分析相关视频(SAS、SPSS、Java、统计理论等等)!(PS:相关文章和视频得原创!联系方式见下方,欢迎投稿!)


CDA数据分析师学习之路(32)


附赠《数据绑定(1)》干货视频


Spark RDD的转换操作举例

Spark RDD中的操作非常丰富,有80多种针对数据的操作。其中最重要的是Transformation(转换操作)和Action(执行操作)两类。其中转换操作采用了惰性策略,转换操作只生成元数据,相当于对业务逻辑的一种抽象描述,并不会真正执行,只有提交行动操作,这时候才开始从头到尾依次计算。


最常用的转换操作有map, mapPartitions, mapValues, flatMapValues, filter等。


n  map

针对RDD中的每个元素,经过指定的函数,转换成新的元素,进而得到新RDD

val a =sc.parallelize(1 to 9, 3)

val b = a.map(x=> x*2)

a.collect

b.collect

res10:Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)

res11:Array[Int] = Array(2, 4, 6, 8, 10, 12, 14, 16, 18)

上述例子中把原RDD中每个元素都乘以2来产生一个新的RDD

通过toDebugString方法来查看RDD间的依赖关系和转换过程

1.png


n   mapPartitions

mapPartitions是map的一个变种。map的输入函数是应用于RDD中每个元素,而mapPartitions的输入函数是应用于每个分区

val a =sc.parallelize(1 to 9, 3)

defmyfunc[T](iter: Iterator[T]) : Iterator[(T, T)] = {

var res =List[(T, T)]()

var pre =iter.next

while(iter.hasNext) {

val cur =iter.next; res .::= (pre, cur) pre = cur; } res.iterator }

a.mapPartitions(myfunc).collect

res0:Array[(Int, Int)] = Array((1,2), (2,3), (4,5), (5,6) , (7,8), (8,9))

上述例子中的函数myfunc是把分区中一个元素和它的下一个元素组成一个Tuple。因为分区中最后一个元素没有下一个元素了,所以(3,4)和(6,7)不在结果中。


n  mapValues

mapValues顾名思义就是输入函数应用于RDD中Kev-Value的Value,原RDD中的Key保持不变,与新的Value一起组成新的RDD中的元素。

val a =sc.parallelize(List("dog", "tiger", "lion","cat", "panther", " eagle"), 2)

val b = a.map(x=> (x.length, x))

b.mapValues("x"+ _ + "x").collect


res5:Array[(Int, String)] = Array((3,xdogx), (5,xtigerx), (4,xlionx), (3,xcatx),(7,xpantherx), (5,xeaglex))

感谢董轶群老师提供视频资料!


附赠《数据绑定(1)》干货视频

【CDA数据分析师学习之路】数据绑定(1)

感谢辛立伟老师提供视频资料!


***************************************************************************
投稿流程:投稿前请加我QQ联系我,或者直接将文章或视频发送到我的邮箱,但一定要备注好您的姓名、电话、邮箱,以方便我联系您们赠送现金和视频教程的事宜!欢迎投稿!

投稿联系方式:

小段老师QQ:28819897132881989713
邮箱:duanliangbin@pinggu.org
***************************************************************************

相关链接:

CDA数据分析师就业班第四期4月10号开课啦!https://bbs.pinggu.org/thread-4160404-1-1.html


CDA大数据分析师就业班第二期4月17号开课啦!https://bbs.pinggu.org/thread-4160397-1-1.html


上一篇:


CDA数据分析师学习之路(31)https://bbs.pinggu.org/thread-4499951-1-1.html

下一篇:


CDA数据分析师学习之路(33)https://bbs.pinggu.org/thread-4506511-1-1.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-3-31 10:35:48
欢迎积极投稿,论坛币、现金、整套数据分析视频教程等你来拿哦!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群