五-中, Spark 算子 吐血总结(转化+行动算子共三十七个)
文章目录
- 五-中, Spark 算子吐血总结
- 5.1.4.3 RDD 转换算子(Transformation)
- 1. Value类型
- 1.1 `map`
- 1.2 `mapPartitions`
- 1.3 `mapPartitionsWithIndex`
- 1.4 `flatMap`
- 1.5 `glom`
- 1.6 `groupBy`
- 1.7 `filter`
- 1.8 `sample`
- 1.9 `distinct`
- 1.10 `coalesce`
- 1.11 `repartition`
- 1.12 `sortBy`
- 2. 双Value类型
- 2.13 `intersection`
- 2.14 `union`
- 2.15 `subtract`
- 2.16 `zip`
- 3. Key-Value 类型
- 3.17 partitionBy
- 3.18 reduceByKey
- 3.19 groupByKey
- 3.20 aggregateByKey
- 3.21 foldByKey
- 3.22 combineByKey
- 3.23 sortByKey
- 3.24 join
- 3.25 leftOuterJoin
- 3.26 cogroup
- 5.1.4.4 RDD 行动算子 (Action)
- 1. reduce
- 2. collect
- 3. count
- 4. first
- 5. take
- 6. takeOrdered
- 7. aggregate
- 8. fold
- 9. countByKey
- 10. save相关的算子
- 11. foreach
五-中, Spark 算子吐血总结
5.1.4.3 RDD 转换算子(Transformation)
什么是算子?
在流处理、交互式查询中有个常用的概念是“
算子
”,在英文中被成为“Operation
”,在数学上可以解释为一个函数空间到另一个函数空间上的映射O:X->X
,其实就是一个处理单元,往往是指一个函数,在使用算子时往往会有输入和输出,算子则完成相应数据的转化,比如:Group、Sort等都是算子。
从大方向来说, Spark算子(RDD方法)大致可以分为以下两类:
- Transformation 变换/转换算子 : 这种变换并不触发提交作业, 而是
完成作业中间过程处理
; Transformation 操作是延迟计算
的, 也就是说从一个RDD转换为另一个RDD的转换操作不是马上执行, 需要等到有Action操作(行动算子)的时候才会真正触发运算; - Action 行动算子: 这类算子会
触发SparkContext 提交Job作业
, 并将数据输出到Spark系统;
从小方向来说, Spark算子大致分为三类:
Value数据类型
的Transformation算子, 这种变换并不触发提交作业, 针对处理的数据项是Value型的数据;Key-Value数据类型
的Transformation算子, 这种变换并不触发提交作业, 针对处理的数据项是Key-Value型的数据对;Action
算子, 这类算子会触发SparkContext提交Job作业;
1. Value类型
1.1 map
函数签名 | 函数说明 |
---|---|
def map[U: ClassTag](f: T => U): RDD[U] | 将待处理的数据逐条进行映射转换, 这里的转换可以是类型的转换, 也可以是值的转换 |
其实就是Scala集合函数中的map((数据变量:数据类型) => {对每一条数据的映射操作}) |
val dataRDD: RDD[Int] = sparkContext.makeRDD(List(1,2,3,4))
val dataRDD1: RDD[Int] = dataRDD.map(num => {num * 2
})
val dataRDD2: RDD[String] = dataRDD1.map(num => {"" + num
})
map的并行计算
五-中, Spark 算子 吐血总结(转化+行动算子共三十七个)相关推荐
- 大数据Spark实战第五集 Spark股票交易实时价格分析
统一批处理与流处理:Dataflow 在本模块前面的课时中,我们已经学习了 Spark Streaming 的架构.原理.用法以及生产环境中需要考虑的问题.对于 Spark Streaming 的学习 ...
- [转]QT中QString与string的转化,解决中文乱码问题
[转]QT中QString与string的转化,解决中文乱码问题 参考文章: (1)[转]QT中QString与string的转化,解决中文乱码问题 (2)https://www.cnblogs.co ...
- Spark学习之路 (五)Spark伪分布式安装
一.JDK的安装 JDK使用root用户安装 1.1 上传安装包并解压 [root@hadoop1 soft]# tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr ...
- matlab bmp hsi,matlab中RGB与HSI图像转化
姓名:边颖超 学号:19021210974 编程实现RGB与HSI彩色空间的转换,将一幅彩色图像分解为H.S.I三个分量,并显示这三个分量所对应的灰度图像. (1)利用imread函数读入灰度图片hu ...
- java中各种时间格式的转化
http://www.chinaitpower.com/A/2005-01-14/104881.html 使用java.util.Calendar返回间隔天数 static int g ...
- 外部数据源 之 Plugin 可插拔的方式整合到Spark中/Spark源码中
一:概念理解 Plugin 可插拔的方式整合到Spark中/Spark源码中 为了在用外部数据源读取文件的时候,本来读取是valui 使他变成一个带schema的df 有具体的信息 外部数据源就是把很 ...
- mysql批量修改表字段信息,把mysql中列名大写字母列转化为小写
方法:通过sql语句拼凑出可执行的sql语句 把mysql中列名大写字母列转化为小写的sql SELECTconcat( 'alter table ', TABLE_NAME, ' change co ...
- R语言使用ifelse函数进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为两个类别的离散变量(分类变量)
R语言使用ifelse函数进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为两个类别的离散变量(分类变量) 目录
- python批量将CAD中的每个图分别转化为对应的PDF(cad转pdf)
python批量将CAD中的每个图分别转化为对应的PDF(cad转pdf) 需要在cad上选择左下角和右小角的坐标,会有提示,注意看即可 通过交互方式将一个CAD中的每个图纸分别转为一个pdf,简单易 ...
最新文章
- 细说php这么难懂,挺难懂的解决方法
- 中药ppi网络图太杂乱_太杂乱了吗? 这是您的iPhone,iPad,Android或台式机的15张简约壁纸...
- 机器学习在企业管理中如何落地?25个行业近500名CIO这样说
- Android7.0以上增加(/system/lib/libtest.so)系统库文件
- 一款PO VO DTO 转换神器,求求你别在到处找工具类了!
- python实现元胞自动机
- 基于时域线性插值法计算信号的周期
- Excel表格中保护公式不被修改
- 瞬态二极管,有哪些?
- mysql 2000_sql server 2000 下载
- 程序员们一个一个的都挺神的,堪称 35 岁毕业之后再就业的标兵,不服不行
- 如何设计签名 我的名字
- 阿里高维向量检索方法NSG介绍
- Silverlight 2学习教程(四)
- android 9.0 10.0 设置上网应用白名单(上网app白名单)
- win10下如何为jdk配置环境变量
- 任正非:做好这件事情最重要
- 「面经分享」小米java岗二面面经,已拿offer
- 今天跟我薅当当羊毛!4 折买正版书了!!
- c libxml2解析html,在Python中,lxml和libxml2哪个更适合解析格式错误的html?
热门文章