spark源码action系列-count
来源:互联网 发布:人工智能东南大学 编辑:程序博客网 时间:2024/05/16 14:23
count操作中:把执行count操作的rdd中所有的partition的数据的总和时行相加,得到一个Long类型的返回值的操作.也就是说这个操作得到一个Long值,这个值当前的这个RDD中每个partition的iterator的总记录条数和.
task的function的定义部分:
这里主要是通过对每个partition中的iterator时行迭代,得到这个iterator的总记录数.
这里的Utils.getIteratorSize就是对这个partition中的iterator进行next并记数的操作.
这里传给task中执行的最终的函数是根据partition中的iterator进行next的操作,每next一下,记录一个count值,到iterator迭代完成后,返回这个count值,就是这个task的返回值.
sc.runJob(this, Utils.getIteratorSize _)
Driver端的resultHandler的定义部分:
val results = new Array[U](partitions.size)
这里把每个task返回的count值先存储到task对应的partition的下标位置 .
(index, res) => results(index) = res
Driver端最终结果的返回部分:
最后,把这个results的数组(数组中每个位置存储了一个count值)进行相加操作.
def count(): Long = sc.runJob(this, Utils.getIteratorSize _).sum
0 0
- spark源码action系列-count
- spark源码action系列-collect
- spark源码action系列-take
- spark源码action系列-reduce
- spark源码action系列-saveAsHadoopDataset
- spark源码action系列-开头部分
- spark源码action系列-foreach与foreachPartition
- 3.4 Spark RDD Action操作1-first、count、lookup、collect
- Apache Spark源码走读系列
- spark源码系列文章目录
- Spark之 源码解读系列
- Spark SQL 源码分析系列文章
- Spark源码系列(二)RDD详解
- Spark SQL 源码分析系列文章
- Spark源码系列(二)RDD详解
- Spark源码系列(五)分布式缓存
- Spark源码系列(二)RDD详解
- spark源码系列文章------shuffle模块详解
- URAL1658 Sum of Digits(DP)
- String.format()
- hdu5547 dfs
- 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建
- spring JUnit 基本原理
- spark源码action系列-count
- Linux、Solaris 系统根据时间动态创建目录或文件夹的方法
- Android Eclipse开发运行程序Conversion to Dalvik format failed with error 1错误
- windows下安装mongodb
- Spark Streaming基础概念介绍
- JDBC连接池
- Listview indexOutOfBoundsException: Invalid index 1, size is 1
- Dynamics CRM 2015/2016 Web API:Unbound Action 和 Bound Action
- 在Sql Server 2016中使用For Json子句把数据作为json格式导出