spark算子实战(三)

这篇文章将继续介绍spark算子之Actions算子。

Actions算子

算子 说明
foreach 对RDD中的每个元素应用f函数。
saveAsTextFile 将RDD保存为文本文件。路径path可以是本地路径或HDFS地址,保存方法是对RDD成员调用toString函数。
saveAsObjectFile 用于将RDD中的元素序列化成对象,存储到文件中。对于HDFS,默认采用SequenceFile保存
collect 以Array的形式返回RDD中的所有元素,仅限数据量比较少的时候使用。
collectAsMap 返回hashMap包含所有RDD中的分片,key如果重复,后边的元素会覆盖前面的元素。
reduceByKeyLocally 将RDD[K,V]中每个K对应的V值根据映射函数来运算,运算结果映射到一个Map[K,V]中,而不是RDD[K,V]。相当于先执行reduce,再执行collectAsMap。
lookup 用于[K,V]类型的RDD,根据指定的K值,查找该K对应的所有V值并返回。
count 返回RDD中元素的个数。
first 返回RDD中的第一个元素,不排序。
top 用于从RDD中,按照默认(降序)或者指定的排序规则,返回前num个元素。
take take用于获取RDD中从0到num-1下标的元素,不排序。
takeOrdered 与top类似,只不过以和top相反的顺序返回元素。
reduce 根据映射函数f,对RDD中的元素进行二元计算,返回计算结果。
fold 使用给定的关联函数和“zero value”来聚合RDD中每个分区的元素,然后聚合所有分区的结果。结果为:(分区数+1)*(zero value)+所有元素的和
aggregate 用于聚合RDD中的元素,先使用第一个函数(seqOp)将RDD中每个分区中的T类型元素聚合成U类型,再使用第二个函数(combOp)将之前每个分区聚合后的U类型聚合成U类型,特别注意seqOp和combOp都会使用zeroValue的值,zeroValue的类型为U。

1.foreach

实例1
scala代码

def f(x:String):Unit={
    println("hello "+x)
} 
val a = sc.parallelize(List("tom", "lucy", "alex", "july", "alina", "andy"), 2)
a.foreach(f)

结果:
这里写图片描述

python代码

def f(x): print("hello "+x)
a = sc.parallelize(["tom", "lucy", "alex", "july", "alina", "andy"], 2)
a.foreach(f)

结果:
这里写图片描述

2.saveAsTextFile

实例1
scala代码

val a = sc.parallelize(1 to 1000,3)
a.saveAsTextFile("/root/1.txt")

结果:
这里写图片描述

也可将文件保存到hdfs上,代码如下:

val a = sc.parallelize(1 to 1000,3)
a.saveAsTextFile("hdfs://master:9000/user/root/1.txt")

结果:
这里写图片描述

python代码

a = sc.parallelize(range(1 , 1000+1),3)
a.saveAsTextFile("/root/2.txt")

结果:
这里写图片描述

3.saveAsObjectFile

实例1
scala代码

val a = sc.parallelize(1 to 10,3)
a.saveAsObjectFile("/root/objFile")
val b = sc.objectFile[Int]("/root/objFile")
b.collect

结果:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值