首页 > 其他 > 详细

Spark算子

时间:2019-12-23 15:28:26      阅读:95      评论:0      收藏:0      [点我收藏+]

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 contextSparkContext 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 dependenciesSeq[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 getCheckpointFileOption[String]  如果这个RDD是检查点则返回数据目录的名字  
 final def getNumPartitionsInt  获得RDD的分区数量  
def getStorageLevelStorageLevel 获得当前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 idInt    
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 isCheckpointedBoolean    

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

Spark算子

原文:https://www.cnblogs.com/xxfxxf/p/12081544.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!