Transformation和Actions详解
来源:互联网 发布:webstorm mac使用教程 编辑:程序博客网 时间:2024/05/17 15:39
Transformation具体内容
- map(func) :返回一个新的分布式数据集,由每个原元素经过func函数转换后组成
- filter(func) : 返回一个新的数据集,由经过func函数后返回值为true的原元素组成
- flatMap(func) : 类似于map,但是每一个输入元素,会被映射为0到多个输出元素(因此,func函数的返回值是一个Seq,而不是单一元素)
- sample(withReplacement, frac, seed) :
根据给定的随机种子seed,随机抽样出数量为frac的数据 - union(otherDataset) : 返回一个新的数据集,由原数据集和参数联合而成
- groupByKey([numTasks]) :
在一个由(K,V)对组成的数据集上调用,返回一个(K,Seq[V])对的数据集。注意:默认情况下,使用8个并行任务进行分组,你可以传入numTask可选参数,根据数据量设置不同数目的Task - reduceByKey(func, [numTasks]) : 在一个(K,V)对的数据集上使用,返回一个(K,V)对的数据集,key相同的值,都被使用指定的reduce函数聚合到一起。和groupbykey类似,任务的个数是可以通过第二个可选参数来配置的。
- join(otherDataset, [numTasks]) :
在类型为(K,V)和(K,W)类型的数据集上调用,返回一个(K,(V,W))对,每个key中的所有元素都在一起的数据集 - groupWith(otherDataset, [numTasks]) : 在类型为(K,V)和(K,W)类型的数据集上调用,返回一个数据集,组成元素为(K, Seq[V], Seq[W]) Tuples。这个操作在其它框架,称为CoGroup
- cartesian(otherDataset) : 笛卡尔积。但在数据集T和U上调用时,返回一个(T,U)对的数据集,所有元素交互进行笛卡尔积。
- flatMap(func) :
类似于map,但是每一个输入元素,会被映射为0到多个输出元素(因此,func函数的返回值是一个Seq,而不是单一元素)
Actions具体内容
- reduce(func) : 通过函数func聚集数据集中的所有元素。Func函数接受2个参数,返回一个值。这个函数必须是关联性的,确保可以被正确的并发执行
- collect() : 在Driver的程序中,以数组的形式,返回数据集的所有元素。这通常会在使用filter或者其它操作后,返回一个足够小的数据子集再使用,直接将整个RDD集Collect返回,很可能会让Driver程序OOM
- count() : 返回数据集的元素个数
- take(n) : 返回一个数组,由数据集的前n个元素组成。注意,这个操作目前并非在多个节点上,并行执行,而是Driver程序所在机器,单机计算所有的元素(Gateway的内存压力会增大,需要谨慎使用)
- first() : 返回数据集的第一个元素(类似于take(1))
- saveAsTextFile(path) : 将数据集的元素,以textfile的形式,保存到本地文件系统,hdfs或者任何其它hadoop支持的文件系统。Spark将会调用每个元素的toString方法,并将它转换为文件中的一行文本
- saveAsSequenceFile(path) : 将数据集的元素,以sequencefile的格式,保存到指定的目录下,本地系统,hdfs或者任何其它hadoop支持的文件系统。RDD的元素必须由key-value对组成,并都实现了Hadoop的Writable接口,或隐式可以转换为Writable(Spark包括了基本类型的转换,例如Int,Double,String等等)
- foreach(func) : 在数据集的每一个元素上,运行函数func。这通常用于更新一个累加器变量,或者和外部存储系统做交互
算子分类
大致可以分为三大类算子:
1. Value数据类型的Transformation算子,这种变换并不触发提交作业,针对处理的数据项是Value型的数据。
2. Key-Value数据类型的Transfromation算子,这种变换并不触发提交作业,针对处理的数据项是Key-Value型的数据对。
3. Action算子,这类算子会触发SparkContext提交Job作业。
1 0
- Transformation和Actions详解
- RDD操作详解1——Transformation和Actions概况
- RDD操作详解1——Transformation和Actions概况
- 【Spark】RDD处理程序运行原理解释和它的Transformation和Actions操作详解
- 【Spark】RDD操作详解1——Transformation和Actions概况
- 【Spark】RDD操作详解1——Transformation和Actions概况
- 大数据:Spark Core (一) 什么是RDD的Transformation和Actions以及Dependency?
- Triggers、Actions 和 Behaviors
- Spark RDD Transformation 详解
- actions
- Actions
- Actions
- Actions
- Actions
- Actions
- Spark:Transformation和Action
- Spark: Transformation和Action
- Spark: Transformation和Action
- Affymetrix芯片分析:获取差异表达基因系列三_SAM
- 软件工程经验总结系列之三 - 计划阶段控制
- ACM学习(一)总体概念
- Java transient 关键字
- IOS之UITextField 禁止粘贴
- Transformation和Actions详解
- 解析 Linux 中的 VFS 文件系统机制
- 特征提取代码总结
- Flask中使用Mysql的几点记录 / flask-sqlalchemy
- UItableView的性能优化
- 对话框中不到WM_CHAR消息
- 关于商品信息的修改
- SunCertPathBuilderException: unable to find valid certification path to requested target
- 跨域访问的两种解决方式:jsonp和cors