transformation算子

map(func)

返回一个新的分布式数据集,由每个原元素经过func函数处理后的新元素组成

filter(func)

返回一个新的数据集,由经过func函数处理后返回值为true的原元素组成

flatMap(func)

类似于map,但是每一个输入元素,会被映射为0个或多个输出元素,(因此,func函数的返回值是一个seq,而不是单一元素)

mapPartitions(func)

类似于map,对RDD的每个分区起作用,在类型为T的RDD上运行时,func的函数类型必须是Iterator[T]=>Iterator[U]

sample(withReplacement,fraction,seed)

根据给定的随机种子seed,随机抽样出数量为fraction的数据

pipe(command,[envVars])

通过管道的方式对RDD的每个分区使用shell命令进行操作,返回对应的结果

union(otherDataSet)

返回一个新的数据集,由原数据集合参数联合而成

intersection(otherDataset)

求两个RDD的交集

distinct([numtasks])

返回一个包含源数据集中所有不重复元素的i新数据集

groupByKey([numtasks])

在一个由(K,v)对组成的数据集上调用,返回一个(K,Seq[V])对组成的数据集。默认情况下,输出结果的并行度依赖于父RDD的分区数目,如果想要对key进行聚合的话,使用reduceByKey或者combineByKey会有更好的性能

reduceByKey(func,[numTasks])

在一个(K,V)对的数据集上使用,返回一个(K,V)对的数据集,key相同的值,都被使用指定的reduce函数聚合到一起,reduce任务的个数是可以通过第二个可选参数来配置的

sortByKey([ascending],[numTasks])

在类型为(K,V)的数据集上调用,返回以K为键进行排序的(K,V)对数据集,升序或者降序有boolean型的ascending参数决定

join(otherDataset,[numTasks])

在类型为(K,V)和(K,W)类型的数据集上调用,返回一个(K,(V,W))对,每个key中的所有元素都在一起的数据集

cogroup(otherDataset,[numTasks])

在类型为(K,V)和(K,W)类型的数据集上调用,返回一个数据集,组成元素为(K,Iterable[V],Iterable[W]) tuples

cartesian(otherDataset)

笛卡尔积,但在数据集T和U上调用时,返回一个(T,U)对的数据集,所有元素交互进行笛卡尔积

coalesce(numPartitions)

对RDD中的分区减少指定的数目,通常在过滤完一个大的数据集之后进行此操作

repartition(numpartitions)

将RDD中所有records平均划分到numparitions个partition中


action算子

reduce(func)

通过函数func聚集数据集中的所有元素,这个函数必须是关联性的,确保可以被正确的并发执行

collect()

在driver的程序中,以数组的形式,返回数据集的所有元素,这通常会在使用filter或者其它操作后,返回一个足够小的数据子集再使用

count()

返回数据集的元素个数

first()

返回数据集的第一个元素(类似于take(1))

take(n)

返回一个数组,由数据集的前n个元素组成。注意此操作目前并非并行执行的,而是driver程序所在机器

takeSample(withReplacement,num,seed)

返回一个数组,在数据集中随机采样num个元素组成,可以选择是否用随机数替换不足的部分,seed用于指定的随机数生成器种子

saveAsTextFile(path)

将数据集的元素,以textfile的形式保存到本地文件系统hdfs或者任何其他Hadoop支持的文件系统,spark将会调用每个元素的toString方法,并将它转换为文件中的一行文本

takeOrderd(n,[ordering])

排序后的limit(n)

saveAsSequenceFile(path)

将数据集的元素,以sequencefile的格式保存到指定的目录下,本地系统,hdfs或者任何其他hadoop支持的文件系统,RDD的元素必须由key-value对组成。并都实现了hadoop的writable接口或隐式可以转换为writable

saveAsObjectFile(path)

使用Java的序列化方法保存到本地文件,可以被sparkContext.objectFile()加载
countByKey()
对(K,V)类型的RDD有效,返回一个(K,Int)对的map,表示每一个可以对应的元素个数

foreach(func)

在数据集的每一个元素上,运行函数func,t通常用于更新一个累加器变量,或者和外部存储系统做交互

转载于:https://blog.51cto.com/simplelife/2336988

Spark的transformation和action算子简介相关推荐

  1. spark rdd Transformation和Action 剖析

    1.看到 这篇总结的这么好, 就悄悄的转过来,供学习 wordcount.toDebugString查看RDD的继承链条 所以广义的讲,对任何函数进行某一项操作都可以认为是一个算子,甚至包括求幂次,开 ...

  2. spark基础transformation

    本文章主要通过java实现spark常用transformation 1 map算子案例 /** * map算子案例:将集合中每一个元素都乘以2 */ private static void map( ...

  3. 【Spark】(五)Spark Transformation(转换算子) 和 Action(执行算子)

    文章目录 一.Transformation 和 Action 1.转换操作 2.行动操作 二.map.flatMap.mapParations.mapPartitionsWithIndex 2.1 m ...

  4. Spark action算子案例

    在上篇文章中,我们对Spark中几种常用的transformation算子通过Java和Scala两种代码分别进行了案例演示,Spark transformation算子案例  而在本文中,我们将继续 ...

  5. Spark RDD/Core 编程 API入门系列 之rdd实战(rdd基本操作实战及transformation和action流程图)(源码)(三)...

    本博文的主要内容是: 1.rdd基本操作实战 2.transformation和action流程图 3.典型的transformation和action RDD有3种操作: 1.  Trandform ...

  6. Spark(4)——transformation、action、persist

    RDD数据是不可变的: transformation 将一个RDD变成一个新的RDD' 比如mapreduce中的map操作,将数据集里的元素做处理变成新的元素,形成RDD'.transformati ...

  7. spark算子_十、Spark之详解Action类算子

    常用Action类算子列表 reduce(func): 通过func函数来对RDD中所有元素进行聚合运算,先运算分区内数据,再运算分区间数据. scala> val rdd1 = sc.make ...

  8. sparkcore分区_Spark学习:Spark源码和调优简介 Spark Core (二)

    本文基于 Spark 2.4.4 版本的源码,试图分析其 Core 模块的部分实现原理,其中如有错误,请指正.为了简化论述,将部分细节放到了源码中作为注释,因此正文中是主要内容. 第一部分内容见: S ...

  9. 【大数据开发】SparkCore——进阶算子、Action算子、查看分区数的三种方式

    源代码中的大写V,指的是value rdd.getNumberPartitions获取分区数量 Transformation算⼦全都是RDD[U,T]类型的 Action算子的返回值一般情况下不会是R ...

最新文章

  1. visualstudio开始调试不执行_攻击者是如何滥用msvsmon和Windows远程调试器的
  2. 复制 和 粘帖 的方法(特别在linux中),备忘
  3. Reflux系列01:异步操作经验小结
  4. Android找工作系列之自定义View
  5. com+ system application 启动_dubbo启动引导过程(基于2.7.9)
  6. 程序员进阶之路:四个程序员职业阶段,通常对应不同的薪资待遇!
  7. 11 如何通过 “副本传输” 传输从DEV到QAS的请求号
  8. Internet路由结构学习心得二:通告汇聚和具体路由影响AS入流量
  9. 惠斯通电桥信号调理芯片_基于精密分流电阻器的惠斯通电桥校准
  10. linux 建立用户kde目录,安装KDE Plasma后,你要做的七件事
  11. NDK编译mupdf1.1小记
  12. 计算机在思政专业的应用与探索,课程思政在计算机类课程中的探索与实践
  13. 秦岭三面佛已经拆除,觉得惋惜
  14. Vray材质——金属材质
  15. CTE6备考与考试感悟
  16. [OpenHarmony RK3568] (二)基础开发
  17. PWM控制电机转速、PWM原理
  18. 发电厂兰吉尔电表数据采集方案-IEC62056/DLMS/COSEM协议采集网关驱动配置说明
  19. [vSphere]关闭ESXi特定警报
  20. DAO层常用的查询方法

热门文章

  1. 清华构建新一代数据集NICO,定义图像分类新标准
  2. 实施PLM系统的总结及建议
  3. 迁移学习,让深度学习不再困难……
  4. AI设计的新启发 | 什么是用户体验中台?
  5. AI产业落地风向标,2019全球智博会亮点回顾
  6. 深度语义模型以及在淘宝搜索中的应用
  7. 无监督学习:大数据带我们洞察现在,但小数据将带我们抵达未来
  8. 面试宝典:深入理解这110道python面试题,AI和大数据向你招手
  9. 企业管理做不好的根源!「管理智慧」
  10. 人工智能时代,机器视觉技术的未来趋势