文章目录

  • 五-中, 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方法)大致可以分为以下两类:

  1. Transformation 变换/转换算子 : 这种变换并不触发提交作业, 而是完成作业中间过程处理; Transformation 操作是延迟计算的, 也就是说从一个RDD转换为另一个RDD的转换操作不是马上执行, 需要等到有Action操作(行动算子)的时候才会真正触发运算;
  2. Action 行动算子: 这类算子会触发SparkContext 提交Job作业, 并将数据输出到Spark系统;

小方向来说, Spark算子大致分为三类:

  1. Value数据类型的Transformation算子, 这种变换并不触发提交作业, 针对处理的数据项是Value型的数据;
  2. Key-Value数据类型的Transformation算子, 这种变换并不触发提交作业, 针对处理的数据项是Key-Value型的数据对;
  3. 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 算子 吐血总结(转化+行动算子共三十七个)相关推荐

  1. 大数据Spark实战第五集 Spark股票交易实时价格分析

    统一批处理与流处理:Dataflow 在本模块前面的课时中,我们已经学习了 Spark Streaming 的架构.原理.用法以及生产环境中需要考虑的问题.对于 Spark Streaming 的学习 ...

  2. [转]QT中QString与string的转化,解决中文乱码问题

    [转]QT中QString与string的转化,解决中文乱码问题 参考文章: (1)[转]QT中QString与string的转化,解决中文乱码问题 (2)https://www.cnblogs.co ...

  3. Spark学习之路 (五)Spark伪分布式安装

    一.JDK的安装 JDK使用root用户安装 1.1 上传安装包并解压 [root@hadoop1 soft]# tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr ...

  4. matlab bmp hsi,matlab中RGB与HSI图像转化

    姓名:边颖超 学号:19021210974 编程实现RGB与HSI彩色空间的转换,将一幅彩色图像分解为H.S.I三个分量,并显示这三个分量所对应的灰度图像. (1)利用imread函数读入灰度图片hu ...

  5. java中各种时间格式的转化

    http://www.chinaitpower.com/A/2005-01-14/104881.html 使用java.util.Calendar返回间隔天数         static int g ...

  6. 外部数据源 之 Plugin 可插拔的方式整合到Spark中/Spark源码中

    一:概念理解 Plugin 可插拔的方式整合到Spark中/Spark源码中 为了在用外部数据源读取文件的时候,本来读取是valui 使他变成一个带schema的df 有具体的信息 外部数据源就是把很 ...

  7. mysql批量修改表字段信息,把mysql中列名大写字母列转化为小写

    方法:通过sql语句拼凑出可执行的sql语句 把mysql中列名大写字母列转化为小写的sql SELECTconcat( 'alter table ', TABLE_NAME, ' change co ...

  8. R语言使用ifelse函数进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为两个类别的离散变量(分类变量)

    R语言使用ifelse函数进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为两个类别的离散变量(分类变量) 目录

  9. python批量将CAD中的每个图分别转化为对应的PDF(cad转pdf)

    python批量将CAD中的每个图分别转化为对应的PDF(cad转pdf) 需要在cad上选择左下角和右小角的坐标,会有提示,注意看即可 通过交互方式将一个CAD中的每个图纸分别转为一个pdf,简单易 ...

最新文章

  1. 细说php这么难懂,挺难懂的解决方法
  2. 中药ppi网络图太杂乱_太杂乱了吗? 这是您的iPhone,iPad,Android或台式机的15张简约壁纸...
  3. 机器学习在企业管理中如何落地?25个行业近500名CIO这样说
  4. Android7.0以上增加(/system/lib/libtest.so)系统库文件
  5. 一款PO VO DTO 转换神器,求求你别在到处找工具类了!
  6. python实现元胞自动机
  7. 基于时域线性插值法计算信号的周期
  8. Excel表格中保护公式不被修改
  9. 瞬态二极管,有哪些?
  10. mysql 2000_sql server 2000 下载
  11. 程序员们一个一个的都挺神的,堪称 35 岁毕业之后再就业的标兵,不服不行
  12. 如何设计签名 我的名字
  13. 阿里高维向量检索方法NSG介绍
  14. Silverlight 2学习教程(四)
  15. android 9.0 10.0 设置上网应用白名单(上网app白名单)
  16. win10下如何为jdk配置环境变量
  17. 任正非:做好这件事情最重要
  18. 「面经分享」小米java岗二面面经,已拿offer
  19. 今天跟我薅当当羊毛!4 折买正版书了!!
  20. c libxml2解析html,在Python中,lxml和libxml2哪个更适合解析格式错误的html?

热门文章

  1. ESPIDF开发ESP32学习笔记【WiFi实现】
  2. C语言学习笔记——调用函数时提示警告
  3. 安装mingw发现bin目录下没有mingw32-make.exe怎么办?
  4. 北航超算运行matlab,北航学子在ASC17世界大学生超级计算机竞赛全球总决赛中荣获亚军...
  5. 直流无刷电机的调试与代码开源(配套资源)
  6. 必应API接口node.js版 - 极客玩家大白
  7. 漫谈程序员系列:找工作的辟邪剑谱
  8. Python之简单飞机行李托运计费系统
  9. 教学论文计算机,计算机教学论文
  10. 材料专业毕业生的真实工作状况