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 ...
随机推荐
- 2-28 if...else
- Luogu P4404 [JSOI2010]缓存交换 优先队列
细节题?...调了半天.... 可以发现,每一次从缓存中删除的主存一定是下次访问最晚的,可以用优先队列来处理...还有要离散化...还有链表末尾要多建一些点...否则会死的很惨... #include ...
- Experimental Educational Round: VolBIT Formulas Blitz F
Description One company of IT City decided to create a group of innovative developments consisting f ...
- JavaScript中使用ActiveXObject操作本地文件夹的方法
转载地址 http://www.jb51.net/article/48538.htm 在Windows平台上, js可以调用很多Windows提供的ActivexObject,本文就使用js来实 ...
- caffe 图片数据的转换成lmdb和数据集均值(转)
转自网站: http://blog.csdn.net/muyiyushan/article/details/70578077 1.准备数据 使用dog/cat数据集,在训练项目根目录下分别建立trai ...
- Zookeeper如何正确设置和获取watcher
Watcher 设置是开发中最常见的,需要搞清楚watcher的一些基本特征,对于exists.getdata.getchild对于节点的不同操作会收到不同的 watcher信息 state=-1 ...
- 使用Dockerfile docker tomcat部署
在百度上试很多文章都不行,只有这篇可以. 宿主机为:centos64位 //安装docker 1:yum install docker //启动docker 2:systemctl start do ...
- ubuntu下安装wireshark(以及配置非root)
https://jingyan.baidu.com/article/c74d60009d992f0f6a595de6.html Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网 ...
- Linux安装phpMyAdmin配置管理多个数据库
1.下载 :phpMyAdmin 2.解压安装包: tar -zxvf phpMyAdmin-4.6.5.2-all-languages.tar.gz 3.替换目录 : mv phpMyAdmin-4 ...
- [HZOI 2015]复仇的序幕曲
[题目描述] 你还梦不梦痛不痛,回忆这么重你怎么背得动 ----序言 当年的战火硝烟已经渐渐远去,可仇恨却在阿凯蒂王子的心中越来越深 他的叔父三年前谋权篡位,逼宫杀死了他的父王,用铁血手腕平定了国内所 ...