DAG的生成 原始的RDD(s)通过一系列转换就形成了DAG。RDD之间的依赖关系,包含了RDD由哪些Parent RDD(s)转换而来和它依赖parent RDD(s)的哪些Partitions,是DAG的重要属性。借助这些依赖关系,DAG可以认为这些RDD之间形成了Lineage(血统)。借助L ...
分类:
其他好文 时间:
2016-07-31 20:34:22
阅读次数:
382
RDD的操作 RDD支持两种操作:转换和动作。 1)转换,即从现有的数据集创建一个新的数据集。 2)动作,即在数据集上进行计算后,返回一个值给Driver程序。 例如,map就是一种转换,它将数据集每一个元素都传递给函数,并返回一个新的分布式数据集表示结果。另一个方面,reduce是一种动作,通过一 ...
分类:
Web程序 时间:
2016-07-31 20:34:14
阅读次数:
130
RDD有什么特征/属性? 1)有一个分片列表,就是能被切分,和Hadoop一样,能够切分的数据才能并行计算。 一组分片(partition),即数据集的基本组成单位,对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就 ...
分类:
Web程序 时间:
2016-07-31 20:33:54
阅读次数:
320
什么是RDD? 官方对RDD的解释是:弹性分布式数据集,全称是Resilient Distributed Datasets。RDD是只读的、分区记录的集合。RDD只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建。这些确定性操作称为转换,如map、filter、groupBy、 ...
分类:
Web程序 时间:
2016-07-31 18:59:42
阅读次数:
186
RDD的转换和DAG的生成 Spark会根据用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关系,同时这个计算链也就生成了逻辑上的DAG。接下来以“Word Count”为例,详细描述这个DAG生成的实现过程。 Spark Scala版本的Word Count程序如下: file和co ...
分类:
Web程序 时间:
2016-07-31 17:38:58
阅读次数:
359
reduceByKey 函数原型: def reduceByKey(func: (V, V) => V): RDD[(K, V)] def reduceByKey(func: (V, V) => V, numPartitions: Int): RDD[(K, V)] def reduceByKey( ...
分类:
其他好文 时间:
2016-07-31 00:06:01
阅读次数:
197
原型: def reduceByKeyLocally(func: (V, V) => V): Map[K, V] 该函数将RDD[K,V]中每个K对应的V值根据映射函数来运算,运算结果映射到一个Map[K,V]中,而不是RDD[K,V] scala> var rdd1 = sc.makeRDD(Ar ...
分类:
其他好文 时间:
2016-07-31 00:02:05
阅读次数:
312
foldByKey 函数原型: def foldByKey(zeroValue: V)(func: (V, V) => V): RDD[(K, V)] def foldByKey(zeroValue: V, numPartitions: Int)(func: (V, V) => V): RDD[(K ...
分类:
数据库 时间:
2016-07-30 23:57:04
阅读次数:
1450
1、combineByKey combine 为结合意思。 作用: 将RDD[(K,V)] => RDD[(K,C)] 表示V的类型可以转成C两者可以不同类型。 def combineByKey[C](createCombiner:V =>C ,mergeValue:(C,V) =>C, merge ...
分类:
其他好文 时间:
2016-07-30 22:40:03
阅读次数:
273
PairRDD 有几个比较麻烦的算子,常理解了后面又忘记了,自己按照自己的理解记录好,以备查阅 1、aggregateByKey aggregate 是聚合意思,直观理解就是按照Key进行聚合。 转化: RDD[(K,V)] ==> RDD[(K,U)] 可以看出是返回值的类型不需要和原来的RDD的 ...
分类:
其他好文 时间:
2016-07-30 22:17:18
阅读次数:
137