为了账号安全,请及时绑定邮箱和手机立即绑定

Spark 算子- Value Transformation

标签:
Spark

Spark算子的作用

Spark的输入、运行转换、输出过程,在运行转换中通过算子对RDD进行转换

webp

输入:外部数据空间(HDFS、Scala集合)输入Spark,数据进入Spark运行时数据空间,转化为Spark数据块,通过BlockManager管理

运行:输入形成RDD后,通过算子操作生成新的RDD,通过Action算子,触发Spark提交作业

输出:程序结束数据输出到运行时数据空间,存储到分布式存储或Scala数据


算子分类

Value数据类型的Transformation算子
Key-Value数据类型的Transformation算子
Action算子

Value数据类型的Transformation算子

输入输出一对一

map
将原RDD的每一个数据通过map中用户自定义函数f映射转为一个新的元素

webp

map


flatMap
将原RDD的每一个数据通过函数f转换为新的元素,将生成的RDD的每个集合中的元素合并为一个集合

webp

flatMap


mapPartitions
获取到每个分区的迭代器(Iterator),通过这个分区整体的迭代器对整个分区的元素进行操作

webp

mapPartitions


glom
将每个分区形成一个数组

webp

glom


输入输出多对一

union
在两个RDD元素数据类型相同时,合并两个RDD的元素,并不去重
如果要去重使用distinct(),++相当于union()

webp

union


cartesian
对两个RDD内的所有元素进行笛卡尔积操作

webp

cartesian


输入输出多对多

groupBy
将元素通过函数生成相应的key,数据转化为key-value,然后将key相同的元素分为一组

webp

groupBy


输入是输出子集

filter
对元素进行过滤

webp

filter


distinct
元素去重操作

webp

distinct


subtract
集合差操作,RDD1-RDD2

webp

subtract


sample
对RDD集合中的元素进行采样,获取所有元素的子集,可以设定有放回抽样、百分比、随机种子,决定采样方式

webp

sample


takeSample
与sample函数原理相同,但不使用相对比例采样,按设定的采样个数进行采样,返回的不是RDD而是单机的数组,相当于执行了collect()操作

webp

takeSample


cache类型

cache
将RDD元素从磁盘缓存到内存,相当于persist(MEMORY_ONLY)

webp

cache


persist
对RDD缓存,缓存模式由StorageLevel决定,参考 RDD持久化级别



作者:Alex90
链接:https://www.jianshu.com/p/841963caf214


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
50
获赞与收藏
175

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消