RDD之action算子
Posted 笔记_y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RDD之action算子相关的知识,希望对你有一定的参考价值。
action算子
1.reduce(function)
reduce将RDD中元素两两传递给输入函数,同时产生一个新值,新值与RDD中下一个元素再被传递给输入函数,直到最后只有一个值为止。
from operator import add
add(1,2)
3
sc.parallelize([1,2,3,4,5]).reduce(add)
15
sc.parallelize((2 for_in range(10))).map(lambda x:1).cache().reduce(add)
10
2 for_in range(10)表示产生10个元素,元素值都为2,map(lambda x:1)将所有上网元素重置为1,cache()表示将结果进行缓存,最后一次进行reduce操作。
2.collect()
返回一个包含RDD所有元素的列表(list)。
sc.parallelize([1,2]).collect()
[1,2]
3.count()
返回数据集中元素个数,默认Long类型。
sc.parallelize([1,2,5,3]).count()
4
4.first()
返回数据集的第一个元素(类似于take(1))
sc.parallelize([5,10,1,2,9,3,4,5,6,7]).first()
5
type (sc.parallelize([5,10,1,2,9,3,4,5,6,7]).first())
<class \'int\'>
5.take(num)
返回RDD中的前n个元素值,返回的结果为列表类型
sc.parallelize([1,2,5,3,6,7,8,9,10],3).take(4)
[1,2,5,3]
6.take(n)
返回一个包含数据集前n个元素的数组(从0下标到n-1下标的元素),不排序。
7.takeOrdered(n,[ordering])
返回RDD中前n个元素,并按默认顺序排序(升序)或者按自定义比较器顺序排序。
8.saveAsTextFile(path)
将dataSet中元素以文本文件的形式写入本地文件系统或者HDFS等。Spark将对每个元素调用toString方法,将数据元素转换为文本文件中的一行记录。
若将文件保存到本地文件系统,那么只会保存在executor所在机器的本地目录。
9.saveAsSequenceFile(path)(Java and Scala)
将dataSet中元素以Hadoop SequenceFile的形式写入本地文件系统或者HDFS等。(对pairRDD操作)
10.saveAsObjectFile(path)(Java and Scala)
将数据集中元素以ObjectFile形式写入本地文件系统或者HDFS等。
11.countByKey()
用于统计RDD[K,V]中每个K的数量,返回具有每个key的计数的(k,int)pairs的hashMap。
12.foreach(function)
对数据集中每一个元素运行函数function。
Spark2.3及之后的官方文档中将原[numTasks]任务数参数改为了[numPartitions]分区数
以上是关于RDD之action算子的主要内容,如果未能解决你的问题,请参考以下文章
pyspark3.0.0+spark3.0.0学习01(RDD的创建,RDD算子(常用Transformation算子 常用Action算子 分区操作算子)的学习及应用)