08、Spark常用RDD变换
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变换的更多相关文章
- Spark常用RDD操作总结
aggregate 函数原型:aggregate(zeroValue, seqOp, combOp) seqOp相当于Map combOp相当于Reduce zeroValue是seqOp每一个par ...
- spark复习笔记(4):RDD变换
一.RDD变换 1.返回执行新的rdd的指针,在rdd之间创建依赖关系.每个rdd都有一个计算函数和指向父rdd的指针 Spark是惰性的,因此除非调用某个转换或动作,否则不会执行任何操作,否则将触发 ...
- spark 常用函数介绍(python)
以下是个人理解,一切以官网文档为准. http://spark.apache.org/docs/latest/api/python/pyspark.html 在开始之前,我先介绍一下,RDD是什么? ...
- [Spark] Spark的RDD编程
本篇博客中的操作都在 ./bin/pyspark 中执行. RDD,即弹性分布式数据集(Resilient Distributed Dataset),是Spark对数据的核心抽象.RDD是分布式元素的 ...
- 关于Spark中RDD的设计的一些分析
RDD, Resilient Distributed Dataset,弹性分布式数据集, 是Spark的核心概念. 对于RDD的原理性的知识,可以参阅Resilient Distributed Dat ...
- Spark核心RDD、什么是RDD、RDD的属性、创建RDD、RDD的依赖以及缓存、
1:什么是Spark的RDD??? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行 ...
- [转]Spark学习之路 (三)Spark之RDD
Spark学习之路 (三)Spark之RDD https://www.cnblogs.com/qingyunzong/p/8899715.html 目录 一.RDD的概述 1.1 什么是RDD? ...
- Spark学习之路 (三)Spark之RDD
一.RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素 ...
- 【Spark】RDD机制实现模型
RDD渊源 弹性分布式数据集(RDD).它是MapReduce模型一种简单的扩展和延伸.RDD为了实现迭代.交互性和流查询等功能,须要保证RDD具备在并行计算阶段之间能够高效地数据共享的功能特性.RD ...
随机推荐
- linux 中iscsi服务
###############第一步: 创建一个2G的分区第二步: yum install targetcli -y 第三步:创建一个2G的分区,并同步 第四步: 执行tagetclils查看 ...
- 缓存算法及Redis、Memcached、Guava、Ehcache中的算法
https://my.oschina.net/ffy/blog/501003 https://yq.aliyun.com/articles/622757 https://blog.csdn.net/s ...
- 查询多列得到map与查询得到po对象
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...
- EF上下文容器,保存线程唯一性
在工作中有个疑问,就是EF上下文容器到底创建了多少个? 在asp.net中,EF上下文容器.如果只要有一个,则每次一个用户访问,添加一些实体,然后又不会自动销毁,就会造成内存爆炸.如果每次创建一个,则 ...
- vue 之 vuex
Vuex 什么是Vuex? 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 个人 ...
- Tomcat在处理GET和POST请求时产生的乱码问题
最近一直在做关于Servlet的事情,常常出现乱码,很是烦人,处理乱码的方法有时候有效,有时候没有效果,今天抽个时间小结一下,以防以后再出现这种问题. 一般的处理乱码的方式都是用: request.s ...
- cmake中文帮助文档
CMake的 在这个页面 了解CMake的生成命令 在摇篮使用cmake变量 报告问题 使用过Android Studio 2.2及更高版本,可以使用NDK和CMake的 编译C和C ++代码到本机库 ...
- Unity 用JSON库序列化与反序列化类,字典
Unity自己的json序列化是不支持字典格式的,但是 json .net库,功能很强大,还支持序列化字典. 下载地址:https://download.csdn.net/download/qq_15 ...
- 判断表单中是否含有disabled属性
我想判断input里面是否有disabled.或者选中未选中的selected checked 属性时,需要用 prop() 方法,返回的结果是 true 或 false . attr()这个方 ...
- 网页URLs
Extending Python Interpretor: https://docs.python.org/3/extending/index.html Aliyun Mriirors: https: ...