08、Spark常用RDD变换

8.1 概述

Spark RDD内部提供了很多变换操作,可以使用对数据的各种处理。同时,针对KV类型的操作,对应的方法封装在PairRDDFunctions trait中,KV类的RDD可以被隐式转换成PairRDDFunctions类型。其中很多的操作,和传统的SQL语句中的操作是对应的,只是底层换成Spark的MR计算。

8.2 常用变换

操作 解释
map 变换,将输入的每个元素进行响应操作,生成新的元素
flatMap 压扁,取出具有可迭代性质的组件中每个元素形成新的RDD
filter 过滤,将符合条件的数据抽取出来
reduceByKey 按照key对value进行聚合,对KV类型的RDD进行操作
groupBy 按照特定操作进行分组,产生新RDD
mapPartitions 对整个分区进行一次变换操作
mapPartitionsWithIndex 对整个分区进行一次变换操作对,携带分区索引信息
union 联合操作,将两个同型的RDD纵向合并,等价于sql union操
intersect 提取两个RDD的共同的元素
distinct 取出RDD集合中的重复元素,等价于SQL中distince查询
groupByKey 按照key对value进行分组,针对KV类型RDD进行操作
aggregateByKey 按照key进行聚合,可以改变类型
join shuffle,按照key连接,等价于sql的连接操作
leftOuterJoin 左外链接,按照key进行连接,等价于SQL的left outer join
rightOuterJoin 右外链接,按照key进行连接,等价于SQL的right outer join
fullOuterJoin 全外链接,按照key进行连接,等价于SQL的full outer join
cogroup 协分组,对两个rdd的value进行聚合成二元组
cartesian 笛卡尔积,交叉连接
repartition 再分区,不论是增加还是减少分区,都需要shuffle过程
coalesce 改变分区,需要携带shuffle=true参数来控制是否需要

08、Spark常用RDD变换的更多相关文章

  1. Spark常用RDD操作总结

    aggregate 函数原型:aggregate(zeroValue, seqOp, combOp) seqOp相当于Map combOp相当于Reduce zeroValue是seqOp每一个par ...

  2. spark复习笔记(4):RDD变换

    一.RDD变换 1.返回执行新的rdd的指针,在rdd之间创建依赖关系.每个rdd都有一个计算函数和指向父rdd的指针 Spark是惰性的,因此除非调用某个转换或动作,否则不会执行任何操作,否则将触发 ...

  3. spark 常用函数介绍(python)

    以下是个人理解,一切以官网文档为准. http://spark.apache.org/docs/latest/api/python/pyspark.html 在开始之前,我先介绍一下,RDD是什么? ...

  4. [Spark] Spark的RDD编程

    本篇博客中的操作都在 ./bin/pyspark 中执行. RDD,即弹性分布式数据集(Resilient Distributed Dataset),是Spark对数据的核心抽象.RDD是分布式元素的 ...

  5. 关于Spark中RDD的设计的一些分析

    RDD, Resilient Distributed Dataset,弹性分布式数据集, 是Spark的核心概念. 对于RDD的原理性的知识,可以参阅Resilient Distributed Dat ...

  6. Spark核心RDD、什么是RDD、RDD的属性、创建RDD、RDD的依赖以及缓存、

    1:什么是Spark的RDD??? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行 ...

  7. [转]Spark学习之路 (三)Spark之RDD

    Spark学习之路 (三)Spark之RDD   https://www.cnblogs.com/qingyunzong/p/8899715.html 目录 一.RDD的概述 1.1 什么是RDD? ...

  8. Spark学习之路 (三)Spark之RDD

    一.RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素 ...

  9. 【Spark】RDD机制实现模型

    RDD渊源 弹性分布式数据集(RDD).它是MapReduce模型一种简单的扩展和延伸.RDD为了实现迭代.交互性和流查询等功能,须要保证RDD具备在并行计算阶段之间能够高效地数据共享的功能特性.RD ...

随机推荐

  1. Xshell连接不上Ubuntu解决方式

    1—— 首先检查一下自己的网络是否正常,如果是插上网线就能用的,就很好:如果是校园网拨号方式上网的,请检查自己是否建立拨号连接. [编辑连接] [添加] PPPOE上网方式选择[DSL]   2—— ...

  2. 【Groovy】Spock with Maven

    已经在项目里使用Groovy/Spock做测试框架了,感觉和Maven结合在一起还是挺好用的. 在Maven的pom.xml里引入他们还是挺方便的,第一先要在dependency 里引入 <de ...

  3. 关于c语言的位运算&,|,^(看懂汉字的都能看懂)

    其中|,&可以当作逻辑运算符,当|,&当成逻辑运算符时,与||,&&的用法基本相似,&&,||运算时会当前面的表达式能够决定整个表达式,则不进行对后面的 ...

  4. nginx编译报错

    [root@vm_0_2_centos nginx-1.12.2]# ./configure --prefix=/application/nginx-1.12.2 --user=www --group ...

  5. Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"

    Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"     出现如图所示错误,处理办法如下 去nginx解压目录下执行 ./co ...

  6. java拦截器的使用

    转载: https://www.cnblogs.com/liangblog/p/7234757.html https://blog.csdn.net/reggergdsg/article/detail ...

  7. swagger2使用日志

    ------------------------------------------------------------------------------------ 安装.配置.使用 参考:htt ...

  8. robotframework使用过程中的若干问题

    问题0: 在ride上import library,显示红色解决办法:根据菜单栏tools--view ride log提示依次安装缺少的模块,包括natsort.xlrd.xlwd.xlutils, ...

  9. ubuntu 16.04安装后不能登入

    启动后,选择ubuntu高级选项,选择恢复模式,在恢复模式下 sudo apt-get update sudo apt-get upgrade 另外,可以在此模式下,选择nvidia驱动

  10. shell脚本之文件测试操作符及整数比较符

    一.文件测试操作符: 在书写测试表达式是,可以使用一下的文件测试操作符. 更多的参数可以help test或者man bash 二.字符串测试操作符: 字符串测试操作符的作用:比较两个字符串是否相同. ...