spark常见行动算子

reduce(f:(T,T)=>T)

1. 作用:通过func函数聚集RDD中的所有元素,先聚合分区内数据,再聚合分区间数据

2.创建一个RDD针对里面的元素进行累加计算获取结果

val rdd=sc.makeRDD(1 to 10)

rdd.reduce(_ + _)


count()

1.作用:在驱动程序中,以数组的形式返回数据集的所有元素

2. 需求:创建一个RDD,并将RDD内容收集到Driver端打印

val rdd=sc.makeRDD(1 to 10) 

rdd.count()

结果:

10



first()

1. 作用:返回RDD中的第一个元素

2.创建一个RDD,获取里面的第一个元素调用first函数返回第一个元祖,底层调用的就是take()函数

val rdd2=sc.makeRDD(Arrray(("qiuxiang",1),("tangbohu",3),("huangrong",3)))

rdd2.first()

结果:

("qiuxiang",1)


take(num: Int)

1. 作用:返回一个由RDD的前n个元素组成的数组,

2.创建一个RDD,获取里面的第一个元素调用first函数返回第一个元祖

val rdd2=sc.makeRDD(Arrray(("qiuxiang",1),("tangbohu",3),("huangrong",3)))

rdd2.take(3)

结果:

("qiuxiang",1),("tangbohu",3),("huangrong",3


takeOrdered(num:Int)&& top(num:Int)

1. 作用:返回该RDD排序后的前n个元素组成的数组,内部涉及排序默认是升序,top是降序

2.创建一个RDD,获取里面的第一个元素调用takeOrdered算子

val rdd=sc.makeRDD(Array(1,90,23,10,11,88,23,-1))

rdd.takeOrdered(3)

rdd.top(3)

结果:

Aarray(-1, 1, 10)

Array(90, 88, 23)

aggregat[U: ClassTag]((zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U))

0.参数(zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U)

1.作用:aggregate函数将每个分区里面的元素通过seqOp和初始值进行聚合(即第一个参数的作用),然后用combine函数将每个分区的结果和初始值(zeroValue)进行combine操作。这个函数最终返回的类型不需要和RDD中元素类型一致 为了更好的理解这个这个算子的作用我们下面进行一个简单的操作

2.需求:创建一个RDD指定RDD由Array(num:Int),2个分区组成计算这个RDD元素的值

val rdd=sc.makeRDD(Array(10,29,90,11,24,10),2)

rdd.aggregate(0)((x:Int,y:Int)=>(x+y),(x:Int,y:Int)=>(x+y))

结果 :174

上面结果其实没有问题但是如果将初始值改成10的话

rdd.aggregate(10)((x:Int,y:Int)=>(x+y),(x:Int,y:Int)=>(x+y))

结果:204

204的计算结果是是怎么算出来的呢?

我们这里计算的有两个分区aggregat()算子,是先分区内计算,再分区之间计算,然后再分区数计算

p0    (10,20,90)   p0分区内的数据计算结果是10+10+20+90=139

p1     (11,24,10  )   p1分区内的数据计算结果是: 10+11+24+10=55

p0    p1  两个分区 计算结果为:10

最终结果是:139+55+10=204


fold(zeroValue:T)(op: (T, T) =>T)

1. 作用:折叠操作,aggregate的简化操作,seqop和combop一样

2.val rdd=sc.makeRDD(Array(10,29,90,11,24,10),2)

rdd.fold(0)(_+_)

结果:174

saveAsTextFile(path:String)

1.作用:将数据集的元素以textfile的形式保存到HDFS文件系统或者其他支持的文件系统,对于每个元素,Spark将会调用toString方法,将它装换为文件中的文本

saveAsSequenceFile(path:String)

作用:将数据集中的元素以Hadoop sequencefile的格式保存到指定的目录下,可以使HDFS或者其他Hadoop支持的文件系统

saveAsObjectFile(path:String)

作用:用于将RDD中的元素序列化成对象,存储到文件中

countByKey()

1. 作用:针对(K,V)类型的RDD,返回一个(K,Int)的map,表示每一个key对应的元素个数。

2.创建一个PairRDD,统计每种key的个数

val rdd= sc.makRDD(List((1,3),(1,2),(1,4),(2,3),(3,6),(3,8)),3)

 rdd.countByKey

结果:Map(3 -> 2, 1 -> 3, 2 -> 1)

foreach[U](f:A =>U)

1. 作用:在数据集的每一个元素上,运行函数func进行更新

需求:创建一个RDD,对每个元素进行打印

val rdd= sc.makRDD(List((1,3),(1,2),(1,4),(2,3),(3,6),(3,8)),3)

rdd.foreach(t=>{print(t._1+"--"+t._2)})

结果:1--3 1--2 1--4 2--3 3--6 3--8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容