spark-core编程2

Key-Value类型:

foldByKey

当分区内计算规则和分区间计算规则相同时,aggregateByKey 就可以简化为 foldByKey

combineByKey

最通用的对 key-value 型 rdd 进行聚集操作的聚集函数(aggregation function)。类似于aggregate(),combineByKey()允许用户返回值的类型与输入不一致。

示例:现有数据 List(("a", 88), ("b", 95), ("a", 91), ("b", 93), ("a", 95), ("b", 98)),求每个key的总值及每个key对应键值对的个数

reduceByKey、foldByKey、aggregateByKey、combineByKey 的区别:

reduceByKey: 相同 key 的第一个数据不进行任何计算,分区内和分区间计算规则相同

FoldByKey: 每一个key 对应的数据和初始值进行分区内计算,分区内和分区间计算规则相同

AggregateByKey:每一个 key 对应的数据和初始值进行分区内计算,分区内和分区间计算规则可以不相同

CombineByKey:当计算时,发现数据结构不满足要求时,可以让第一个数据转换结构。分区

内和分区间计算规则不相同。

sortByKey

根据键值对中的键进行排序,支持升序和降序排列。(布尔值决定升序(true)或降序(false)。)

join

join操作:返回两个RDD中相同键对应的所有元素连接在一起,结果以键开头,右边是嵌套的值。

leftOuterJoin

类似于 SQL 语句的左外连接

左外连接和右外连接:

leftOuterJoin操作:类似于SQL中的左外连接,以元RDD为主。

rightOuterJoin操作:类似于SQL中的右外连接,以参数RDD为主。

cogroup

在类型为(K,V)和(K,W)的 RDD 上调用,返回一个(K,(Iterable<V>,Iterable<W>))类型的 RDD

RDD行动算子

行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。

转换算子与行动算子的区别:

转换算子:不立即执行,只有在遇到行动算子时才会触发计算。

行动算子:立即执行计算,返回具体值或触发实际的计算过程

reduce

聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据

collect

函数签名

def collect(): ArrayT

函数说明

在驱动程序中,以数组 Array 的形式返回数据集的所有元素

foreach

分布式遍历 RDD 中的每一个元素,调用指定函数

count

返回 RDD 中元素的个数

first

返回 RDD 中的第一个元素

take

返回一个由 RDD 的前 n 个元素组成的数组

takeOrdered

返回该 RDD 排序后的前 n 个元素组成的数组

aggregate

分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合

如果图片中rdd中numSlices那个地方不写数字的话,是根据CPU来算的,如下图所示

(分区计算与CPU核数的关系。

通过任务管理器查看CPU核数,并以此为基础进行分区计算。)

fold

折叠操作,aggregate 的简化版操作

countByKey

统计每种 key 的个数

save 相关算子

将数据保存到不同格式的文件中

Spark的三大数据结构

1. RDD

转换算子和行动算子

2.累加器

用于将executor端的变量信息聚合到driver端。

每个task得到变量副本并更新,传回driver端。

展示了相关代码,强调可自定义创建和调用。

3.广播变量

用于高效分发较大只读值。

是只读变量,在多个并行操作中使用同一变量。

展示了与RDD进行数据关联操作的代码

相关推荐
天天爱吃肉82182 小时前
【电源拆解:跟着问答逐一认识开关适配器PCB元器件】
大数据·人工智能·python·功能测试·嵌入式硬件·汽车
Elastic 中国社区官方博客2 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
abcy0712132 小时前
storm核心实时机制
大数据·storm
灵机一物2 小时前
合伙制律所分红和提成律师个税怎么合规优化?
大数据·人工智能
Elastic 中国社区官方博客5 小时前
如何使用 OpenTelemetry 对你的搜索 API 进行埋点,并使用 ES|QL 对其进行查询
大数据·功能测试·elasticsearch·搜索引擎·全文检索·可用性测试
Xzaveir_7776 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
老徐聊GEO6 小时前
亲测有效的AI品牌检测公司案例分享
大数据·人工智能·python
韭菜学长7 小时前
科技型中小企业如何申请政府补贴?申报指南
大数据·人工智能
延凡科技7 小时前
智慧燃气解决方案:管道煤气监管应用管理系统(三维GIS+IoT+大数据落地实战)
大数据·人工智能·科技·物联网·安全
imbackneverdie7 小时前
知网官宣:禁止 AI 列为论文署名作者,标注 Gemini、DeepSeek 等 AI 为作者的稿件统一下架
大数据·人工智能·ai·职场和发展·aigc·科研·高校