当前位置: 首页 > news >正文

Spark-core编程总结

1.reduce

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

示例rdd.reduce(_+_) RDD中的所有整数相加。

2.collect

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

示例rdd.collect() 返回RDD中所有元素的数组。

3.foreach

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

示例rdd.collect().foreach(println) 先收集RDD元素,然后逐个打印。

4.count

功能:返回RDD中元素的个数。

示例rdd.count() 返回RDD中的元素数量。

5.first

功能:返回RDD中的第一个元素。

示例rdd.first() 返回RDD中的第一个元素。

6.take

功能:返回一个由RDD的前n个元素组成的数组。

示例rdd.take(2) 返回RDD中的前两个元素组成的数组。

7.takeOrdered

功能:返回RDD排序后的前n个元素组成的数组。

示例rdd.takeOrdered(2) 返回RDD中排序后的前两个元素。

8.aggregate

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

示例rdd.aggregate(0)(_+_, _+_) RDD的所有元素相加。

9.fold

功能:折叠操作,aggregate的简化版操作。

示例rdd.fold(0)(_+_) RDD的所有元素相加,与aggregate的示例类似但更简洁。

10.countByKey

功能:统计每种key的个数,适用于RDD[(K, V)]类型。

示例rdd.countByKey() 统计每种key出现的次数。

11.save相关算子

功能:将数据保存到不同格式的文件中,包括文本文件、对象文件和序列文件。

示例

rdd.saveAsTextFile("path") 保存为文本文件。rdd.saveAsObjectFile("path") 保存为对象文件。

rdd.saveAsSequenceFile("path") 保存为序列文件(了解即可)。

12.累加器(Accumulator

实现原理
累加器用于把Executor端的变量信息聚合到Driver端。在Driver程序中定义的变量,在Executor端的每个Task都会得到这个变量的一份新的副本。每个Task更新这些副本的值后,传回Driver端进行merge操作。

常用方法

sparkContext.longAccumulator(name: String): 创建一个长整型累加器。

sparkContext.doubleAccumulator(name: String): 创建一个双精度浮点型累加器。

自定义累加器:通过继承AccumulatorV2类,实现自定义的累加逻辑。

13.广播变量(Broadcast Variable

实现原理
广播变量用于高效分发较大的只读对象。它向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用。Spark会为每个任务分别发送该变量,但在多个并行操作中可以共享同一个广播变量,从而提高效率。

常用方法

sparkContext.broadcastT](value: T): 创建一个广播变量。

总结

累加器适用于在分布式计算过程中聚合数据,如统计和、最大值、最小值等。

广播变量适用于在多个任务之间共享大对象,以减少数据传输开销,提高计算效率。

相关文章:

  • 接听电话,手机靠近耳朵后拿开,挂断电话,设备自动锁屏
  • 漏洞扫描系统docker版本更新(2025.4.10)
  • Trea CN多多与主流AI编程工具万字解析
  • [UEC++]UE5C++各类变量相关知识及其API(更新中)
  • C语言,原码、补码、反码
  • 操作系统 3.4-段页结合的实际内存管理
  • 【远程工具】1.1 时间处理设计与实现(datetime库lib.rs)
  • 图灵逆向——题十一-wasm小试牛刀
  • 实习期间如何提升留用概率?
  • 再谈 FireBird 自增字段在ClientDataSet里如何处理
  • yolov8在windows系统的C++版本的onnxruntime部署方法
  • C++笔记之父类引用是否可以访问到子类特有的属性?
  • APP动态交互原型实例|墨刀变量控制+条件判断教程
  • 基于ImGui+FFmpeg实现播放器
  • freertos内存管理简要概述
  • RV1126 人脸识别门禁系统解决方案
  • 安全岗の夺命连环问:(第贰篇)XSS三重奏与RASP防御革命
  • js创建对象
  • 人形机器人发展趋势粗谈
  • 模型上下文协议MCP的缺点与潜在问题。
  • 做外贸怎样上外国网站/新闻类软文营销案例
  • 自己做菠菜网站/百度地图3d实景地图
  • 病历图片在线制作/网站优化方案设计
  • wordpress建站专家/百度推广服务
  • 网站和网页的目的/网站优化培训学校
  • 南京市建设工程交易中心网站/免费换友情链接