Spark开发-Action操作

来源:互联网 发布:淘宝hd停止服务 编辑:程序博客网 时间:2024/06/06 00:06

核心
1、spark中Action的操作

reduce(func)
reduce采样累加或关联操作减少RDD中元素的数量

scala> val data=sc.parallelize(1 to 9)scala> data.reduce(_+_)res0: Int = 45

collect()
将execute上的数据收集到driver端上

scala> val data=sc.parallelize(1 to 9)scala> data.collect()res3: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)

count()
统计有多少给元素在RDD中

scala> val data=sc.parallelize(1 to 9)scala> data.count()res2: Long = 9

first()
返回RDD中的第一个元素

scala> val data=sc.parallelize(1 to 9)scala> data.first()res4: Int = 1

take(n)
返回RDD中的前n个元素

scala> val data=sc.parallelize(1 to 9)scala> data.take()res6: Array[Int] = Array(1, 2, 3, 4, 5)

takeSample(withReplacement, num, [seed])
返回RDD中的随机元素 false表示每次只取没有被取过的元素,true表示从整个集合中取

scala> val data=sc.parallelize(1 to 9)scala> data.takeSample(false,5)res7: Array[Int] = Array(4, 8, 1, 9, 3)scala> data.takeSample(true,5)res8: Array[Int] = Array(1, 7, 8, 8, 7)

takeOrdered(n, [ordering])
返回排序以后的前n个元素

scala> sc.parallelize(Seq(10, 4, 2, 12,4,6,7,0,-1, 3)).takeOrdered(3) res11: Array[Int] = Array(-1, 0, 2)

saveAsTextFile(path)
saveAsSequenceFile(path)
saveAsObjectFile(path)
以上3个保存文件 将RDD保存到文件,本地模式时保存在本地文件,集群模式指如果在Hadoop基础上则保存在HDFS上

countByKey()
将RDD中的数据按Key计数

scala> val data = sc.parallelize(List((1,3),(1,2),(5,4),(1, 4),(2,3),(2,4)),3)scala> data.countByKey()res9: scala.collection.Map[Int,Long] = Map(1 -> 3, 5 -> 1, 2 -> 2)

foreach(func)
foreach方法遍历RDD中所有的元素