微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark算子

1.什么是SparkRDD算子:

总的来讲RDD是Spark最小的数据抽象,每一个rdd算子都拥有五个主要的属性:

1.RDD拥有一组分区

2.RDD拥有计算分区数据的功能

3.一组其他RDD的依赖

4.对于key-value格式的RDD,可以自定义分区

5.RDD更喜欢在数据本地计算数据(即移动计算而非移动数据)

2.RDD算子:

算子 描述 实例
++(other: RDD[T]): RDD[T] 返回一个RDD与另一个RDD的并集,并且相同元素会多次出现  
aggregate[U](zerovalue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U)(implicit arg0: classtag[U]): U 先对每一个分区进行局部计算再对计算后的结果进行总计算  
def barrier(): RDDBarrier[T]    
def cache(): RDD.this.type 将RDD以认的存储等级缓存  
def cartesian[U](other: RDD[U])(implicit arg0: classtag[U]): RDD[(T, U)] 返回两个RDD的笛卡尔积  
def checkpoint(): Unit 设置检查点  
def coalesce(numPartitions: Int, shuffle: Boolean = false, partitionCoalescer: Option[PartitionCoalescer] = Option.empty)(implicit ord: Ordering[T] = null): RDD[T] 返回一个减少分区数的RDD,如果设置的分区数大于RDD本身的分区,则分区数不变  
def collect[U](f: PartialFunction[T, U])(implicit arg0: classtag[U]): RDD[U] 返回RDD中所有可用的值  
def collect(): Array[T]    返回一个包含所有RDD的数组  
def context: SparkContext spark上下文  
def count(): Long 返回RDD中的元素数量  
def countApprox(timeout: Long, confidence: Double = 0.95): PartialResult[BoundedDouble] 类似于count算子,可能返回不完全的结果在延时之内,甚至正在执行的任务没有全部返程时  
def countApproxdistinct(relativeSD: Double = 0.05): Long 返回一个已经去掉重复数据的countApprox  
def countByValue()(implicit ord: Ordering[T] = null): Map[T, Long]  返回本地key-value格式的数据中不相等value的数量  
defcountByValueApprox(timeout: Long, confidence: Double = 0.95)(implicit ord: Ordering[T] = null): PartialResult[Map[T, BoundedDouble]] 与上面类似  
final def dependencies: Seq[Dependency[_]]  返回RDD的所以依赖  
efdistinct(): RDD[T]  返回一个一掉去掉重复数据的新RDD  
deffilter(f: (T) ⇒ Boolean): RDD[T]  返回一个数据过滤后新RDD  
 def first(): T  返回RDD中第一个  
def flatMap[U](f: (T) ⇒ TraversableOnce[U])(implicit arg0: classtag[U]): RDD[U] 对RDD中的所有数据进行处理,并且返回一个新的RDD  
def fold(zerovalue: T)(op: (T, T) ⇒ T): T    
 def foreach(f: (T) ⇒ Unit): Unit  循环遍历RDD  
 def foreachPartition(f: (Iterator[T]) ⇒ Unit): Unit  遍历RDD的分区  
 def getCheckpointFile: Option[String]  如果这个RDD是检查点则返回数据目录的名字  
 final def getNumPartitions: Int  获得RDD的分区数量  
def getStorageLevel: StorageLevel 获得当前RDD的存储等级  
def glom(): RDD[Array[T]]    
def groupBy[K](f: (T) ⇒ K, p: Partitioner)(implicit kt: classtag[K], ord: Ordering[K] = null): RDD[(K, Iterable[T])]    
def groupBy[K](f: (T) ⇒ K, numPartitions: Int)(implicit kt: classtag[K]): RDD[(K, Iterable[T])]    
def groupBy[K](f: (T) ⇒ K)(implicit kt: classtag[K]): RDD[(K, Iterable[T])]    
val id: Int    
def intersection(other: RDD[T], numPartitions: Int): RDD[T]    
def intersection(other: RDD[T], partitioner: Partitioner)(implicit ord: Ordering[T] = null): RDD[T]    
def intersection(other: RDD[T]): RDD[T]    
def isCheckpointed: Boolean    

----未完------

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐