1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| aggregate[U](zeroValue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U)(implicit arg0: ClassTag[U]): U aggregate用户聚合RDD中的元素,先使用seqOp将RDD中每个分区中的T类型元素聚合成U类型,再使用combOp将之前每个分区聚合后的U类型聚合成U类型,特别注意seqOp和combOp都会使用zeroValue的值,zeroValue的类型为U。
treeAggregate[U](zeroValue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U, depth: Int = 2)(implicit arg0: ClassTag[U]): U 多层级聚合
reduce(f: (T, T) ⇒ T): T 根据映射函数f,对RDD中的元素进行二元计算,返回计算结果。
treeReduce(f: (T, T) ⇒ T, depth: Int = 2): T 多级reduce归并聚合
fold(zeroValue: T)(op: (T, T) ⇒ T): T fold是aggregate的简化,将aggregate中的seqOp和combOp使用同一个函数op。
count(): Long count返回RDD中的元素数量。
countApprox(timeout: Long, confidence: Double = 0.95): PartialResult[BoundedDouble] 近似count
countApproxDistinct(relativeSD: Double = 0.05): Long countApproxDistinct(p: Int, sp: Int): Long 近似distinct count
countByValue()(implicit ord: Ordering[T] = null): Map[T, Long] 计算每个值出现次数
countByValueApprox(timeout: Long, confidence: Double = 0.95)(implicit ord: Ordering[T] = null): 计算每个值出现次数近似值
distinct(): RDD[T] distinct(numPartitions: Int)(implicit ord: Ordering[T] = null): RDD[T] 返回元素去重后的RDD
groupBy[K](f: (T) ⇒ K)(implicit kt: ClassTag[K]): RDD[(K, Iterable[T])] groupBy[K](f: (T) ⇒ K, numPartitions: Int)(implicit kt: ClassTag[K]): RDD[(K, Iterable[T])] groupBy[K](f: (T) ⇒ K, p: Partitioner)(implicit kt: ClassTag[K], ord: Ordering[K] = null): RDD[(K, Iterable[T])] 按指定函数生成key,并按key分组。 注意:性能比较差,推荐用PairRDDFunctions.reduceByKey or PairRDDFunctions.aggregateByKey. 因为reduceByKey会先在分区内做聚合,再进行数据交换(shuffle)。
glom(): RDD[Array[T]] 该函数是将RDD中每一个分区中类型为T的元素转换成Array[T],这样每一个分区就只有一个数组元素。
max()(implicit ord: Ordering[T]): T 最大的元素
min()(implicit ord: Ordering[T]): T 最小的元素
|