Spark RDD中两种算子之一:常见Transformation算子小结

本文介绍了Spark中的RDD算子,特别是Transformation算子,包括map、filter、flatMap、sample、union、groupByKey、reduceByKey、join、groupWith、cartesian和sortByKey。这些算子在数据处理中扮演关键角色,例如map进行一对一转换,filter筛选数据,sample实现随机抽样,join和groupByKey用于数据聚合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RDD:弹性分布式数据集,是一种特殊集合,支持多来源,有容错机制,可以被缓存,支持并行操作,一个RDD代表多个分区里的数据集。

RDD有两种算子:
1.Transformation(转换):属于延迟Lazy计算,当一个RDD转换成另一个RDD时并没有立即进行转换,仅仅是记住数据集的逻辑操作;
2.Action(执行):触发Spark作业运行,真正触发转换算子的计算;

RDD中算子的运行过程:
输入:
在Spark程序运行中,数据从外部数据空间(如分布式存储:textFile读取HDFS等,parallelize方法输入Scala集合或数据)输入Spark,数据进入Spark运行时数据空间,转化为Spark中的数据块,通过BlockManager进行管理。
运行:
在Spark数据输入形成RDD后便可以通过变换算子,如filter等,对数据进行操作并将RDD转化为新的RDD,通过Action算子,触发Spark提交作业,。如果数据需要复用,可以通过Cache算子,将数据缓存到内存。
输出:
程序运行结束,数据会输出Spark运行时的空间,存储到分布式存储中(如saveAsTextFile输出到HDFS),或Scala数据或集合中(collect输出到Scala集合,count返回Scala Int型数据)

常见的Transformation(转换)算子:

  1. map(func):返回一个新的分布式数据集,由每个原元素经过func函数转换组成,one to one的操作;
    代码
    运行结果
    运行结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值