数组 spark_计算框架 Spark 基础之 RDD 操作

本文深入探讨了Spark中的核心概念——弹性分布式数据集(RDD),重点关注其转换和行动操作。转换如map、filter、reduceByKey等在数据处理中发挥关键作用,而行动如foreach、saveAsTextFile则触发数据计算和输出。理解这些操作对于高效地使用Spark进行大数据分析至关重要。
摘要由CSDN通过智能技术生成
↑ 点击上面 “时代Java”关注我们, 关注新技术,学习新知识!

Spark是一个函数式的大数据处理框架,可以让你专注于数据分析,其中RDD是不可变的数据集合,可以进行转换去实现程序逻辑,通常转换次数大于行动次数,但是转换时懒惰的,仅在调用下游的行动时才触发转换操作~

RDD是构成Spark的基础,是容错、数据读取、存储以及转换的基本单元,这些操作与转换、行动相结合,可以用来整合几乎99%的易并行应用程序~

7c7142f80ea39cffeaef6da3e757b71e.png

一、RDD 转换操作

映射转换包括:map、flatMap、mapPartitions、filter等

  1. map:调用用户提供的function,作用于输入RDD中的每个数据点

  2. flatMap:与map相同,但是输出的大小可能与输入RDD的大小不同

  3. mapPartitions:调用传递的function,作用于RDD中的每个分区

  4. filter:过滤掉符合特定条件的值,提供的function需要返回域给定条件对应的布尔值

变化转换包括:coalesce、repartition、union、intersection、groupByKey、sortByKey等

  1. coalesce:减少一个RDD中的分区数

  2. repartition:增加或减少RDD中的分区数

  3. union:返回与另一个RDD的并集

  4. intersection:返回与另一个RDD的交集

  5. groupByKey:按key对值进行分组,返回的RDD包含每个组的键值对,其中值是已分组的值得迭代器

  6. sortByKey:按key对RDD进行排序,默认对key进行升序排序

  7. reduceByKey:使用提供的function聚合每个key的值,采用RDD的第一个元素作为其内部累加器的初始值

  8. foldByKey:与reduceByKey类似,但使用initialValue初始化内部累加器

  9. combineByKey:聚合RDD的值,但允许聚合函数的返回值类型与输入类型不同。需要3个函数作为参数,第一个是createCombiner:初始化累加器;第二个是mergeValue:合并相同键的值;第三个是mergeCombines:合并两个累加器

  10. aggregateByKey:类似于combineByKey,但第一个参数是initialValue作为初始参数

  11. join:在一个RDD和另外一个RDD上执行内部连接

混合转换包含:cartesian、distinct、pipe、sample等

  1. cartesian:取两个RDD的笛卡尔乘积

  2. distinct:返回去重的RDD

  3. pipe:执行一个外部命令,并通过它输送RDD的元素

  4. sample:RDD元素随机子集的抽样,第一个参数决定是否可以对元素进行多次抽样,第二个参数决定抽样数量占该RDD的比例

79a4e0e235ebfac119df3eff1e0f83ee.png

二、RDD 行动操作

spark的作业是由行动开启执行的,每个行动要么是外部数据存储区的数据出口点,要么是驱动程序的入口点,每个行动调用sparkContext实例来调度其执行~

  • 触发数据在外部存储实现物化的行动操作包括:foreach、saveAsTextFile等

  1. foreach:调用传递的function,作用于RDD中的每个元素

  2. saveAsTextFile:将RDD作为文本保存在Hadoop兼容的文件系统上

  • 在驱动程序中实现数据物化的行动操作包括:

  1. reduce:在RDD中调用用户自定义的函数,作用于每个键值对的值,将结果返回给驱动程序,需要注意reduce是行动,但是reduceByKey不是

  2. collect:以数组形式将RDD所有内容返回给驱动程序

  3. count:计算RDD中的元素个数

  4. take:以数组形式返回RDD中的前n个元素

  5. first:返回RDD中的第一个元素

  6. takeOrdered:从RDD底部返回k个元素

  7. top:从RDD顶部返回k个元素

  8. lookup:返回域键相关联的值列表

--

知识分享,时代前行!

~~ 时代Java

还有更多好文章……

请查看历史文章和官网,

↓有分享,有收获~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值