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 ...
随机推荐
- jquery知识点结合使用
1.在页面的某个具有id的element内插入其他element,并给其增加悬浮提示. $('#id').after('<div id='box'></div>'); $('# ...
- HDU1398 Square Coins
Description People in Silverland use square coins. Not only they have square shapes but also their v ...
- CF653D
题目唯一的坎就是把绝对的权值变为相对的权值,保证cap和flow是整型的同时可以用最小的1表示一只熊 可是迷的地方在于用kuangbin的板子居然能找出比答案更大的流(Wrong Answer on ...
- WPF Canvas转换为位图 (RenderTargetBitmap)
使用 RenderTargetBitmap 的注意事项: 1. 要渲染的Canvas元素要放在Border元素内,并且此Border元素不能设置边框宽度(BorderThickness),不然生成的位 ...
- Hbase 表操作
1. list 操作 2. 创建table column family, 3. 插入数据: put 'user' 3. 检索数据: scan table
- OCR 维护 crsd.log
###########sample 1 OCR corruption messages are reported in crsd.log, automatic OCR backup is failin ...
- Selenium+Python+Webdriver:保存截图到指定文件夹
保存图片到指定文件夹: from selenium import webdriverfrom pathlib import Pathfrom time import sleepdriver = web ...
- Unity 物体旋转会发生变形
当游戏对象的 "父物体们" 有一个是缩放的,也就是Scale不是(1,1,1)的时候,旋转这个游戏对象它就会出现变形的现象.
- g++ 出现 undefined reference to ......
g++ 出现 undefined reference to ...... 检查/usr/local/lib /usr/lib 发现已经存在相应的库文件 那么,问题可能出现在g++链接次序上,即先链接 ...
- shell脚本之文件测试操作符及整数比较符
一.文件测试操作符: 在书写测试表达式是,可以使用一下的文件测试操作符. 更多的参数可以help test或者man bash 二.字符串测试操作符: 字符串测试操作符的作用:比较两个字符串是否相同. ...