RDD行动算子:

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

1. reduce

➢ 函数签名

def reduce(f: (T, T) => T): T

➢ 函数说明

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

val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4))
val reduceResult: Int = rdd.reduce(_+_)
println(reduceResult)

2. collect

➢ 函数签名

def collect(): Array[T]

➢ 函数说明

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

3. foreach

➢ 函数签名

def foreach(f: T => Unit): Unit = withScope {

 val cleanF = sc.clean(f)

 sc.runJob(this, (iter: Iterator[T]) => iter.foreach(cleanF))

}

➢ 函数说明

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

val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4))

rdd.collect().foreach(println)

4. count

➢ 函数签名

def count(): Long

➢ 函数说明

返回 RDD 中元素的个数

val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4))


val countResult: Long = rdd.count()
println(countResult)

5. first

➢ 函数签名

def first(): T

➢ 函数说明

返回 RDD 中的第一个元素

val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4))

val firstResult: Int = rdd.first()
println(firstResult)

6. take

➢ 函数签名

def take(num: Int): Array[T]

➢ 函数说明

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

val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4))

val takeResult: Array[Int] = rdd.take(2)

takeResult.foreach(println)

7. takeOrdered

➢ 函数签名

def takeOrdered(num: Int)(implicit ord: Ordering[T]): Array[T]

➢ 函数说明

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

val rdd: RDD[Int] = sc.makeRDD(List(1,3,2,4))

val result: Array[Int] = rdd.takeOrdered(2)
result.foreach(println)

8. aggregate

➢ 函数签名

def aggregate[U: ClassTag](zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U): U

➢ 函数说明

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

val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4),8)
// 将该 RDD 所有元素相加得到结果
val result1: Int = rdd.aggregate(0)(_+_, _+_)
val result2: Int = rdd.aggregate(10)(_+_,_+_)

println(result1)
println("**********")

9. fold

➢ 函数签名

def fold(zeroValue: T)(op: (T, T) => T): T

➢ 函数说明

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

val rdd: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4))
val foldResult: Int = rdd.fold(0)(_+_)
println(foldResult)

10. countByKey

➢ 函数签名

def countByKey(): Map[K, Long]

➢ 函数说明

统计每种 key 的个数

val rdd: RDD[(Int, String)] = sc.makeRDD(List((1, "a"), (1, "a"), (1, "a"), (2,"b"), (3, "c"), (3, "c")))

val result: collection.Map[Int, Long] = rdd.countByKey()
print(result)

11. save 相关算子

 函数签名

def saveAsTextFile(path: String): Unit

def saveAsObjectFile(path: String): Unit

def saveAsSequenceFile(

 path: String,

 codec: Option[Class[_ <: CompressionCodec]] = None): Unit //了解即可

 函数说明

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

val rdd: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4))
// 保存成 Text 文件
rdd.saveAsTextFile("Spark-core/output/output")
// 序列化成对象保存到文件
rdd.saveAsObjectFile("Spark-core/output/output1")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85628.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85628.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85628.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【入门】【练17.3 】比大小

| 时间限制&#xff1a;C/C 1000MS&#xff0c;其他语言 2000MS 内存限制&#xff1a;C/C 64MB&#xff0c;其他语言 128MB 难度&#xff1a;中等 分数&#xff1a;100 OI排行榜得分&#xff1a;12(0.1分数2难度) 出题人&#xff1a;root | 描述 试编一个程序&#xff0c;输入…

CppCon 2017 学习:Free Your Functions!

“Free Your Functions!” 这句话在C设计中有很深的含义&#xff0c;意思是&#xff1a; “Free Your Functions!” 的理解 “解放你的函数”&#xff0c;鼓励程序员&#xff1a; 不要把所有的函数都绑在类的成员函数里&#xff0c;优先考虑写成自由函数&#xff08;non-mem…

日常运维问题汇总-19

60. OVF3维护成本中心与订货原因之间的对应关系时&#xff0c;报错提示&#xff0c;SYST: 不期望的日期 00/00/0000。消息号 FGV004&#xff0c;如下图所示&#xff1a; OVF3往右边拉动&#xff0c;有一个需要填入的字段“有效期自”&#xff0c;此字段值必须在成本中心定义的有…

2025SCA工具推荐︱基于多模态SCA的新一代开源供应链风险审查与治理平台

近年来&#xff0c;随着开源软件在企业数字化转型中的广泛应用&#xff0c;开源供应链攻击事件频发&#xff0c;企业普遍面临三大突出难题&#xff1a;一是不清楚自身引入了哪些开源组件&#xff0c;二是不掌握组件中潜在的安全漏洞和合规风险&#xff0c;三是缺乏自动化、全流…

CppCon 2017 学习:Migrating a C++03 library to C++11 case study

这段内容是在介绍 Wt&#xff08;发音类似 “witty”&#xff09; —— 一个用于 C 的 Web UI 框架。总结如下&#xff1a; 什么是 Wt&#xff1f; Wt 是一个 用 C 编写的 widget&#xff08;控件&#xff09;驱动的 Web 框架。类似于桌面 GUI 框架&#xff08;比如 Qt&#…

coding习惯 + Bug记录整理

&#x1f4d6; 清单 1、包装类型导致的NPE2、xxApiWrapper命名3、see注释4、MySQL模糊匹配特殊字符bug 整理些平时不好的coding习惯导致的bug&#x1f4dd; 1、包装类型导致的NPE 处理项目的一个bug&#xff0c;看日志是发生了空指针&#xff0c;相关代码如下&#xff1a; D…

机器学习项目微服务离线移植

机器学习项目微服务离线移植 引言&#xff1a;为什么需要Docker化机器学习项目&#xff1f; 在当今的机器学习工程实践中&#xff0c;项目部署与移植是一个常见但极具挑战性的任务。传统部署方式面临着"在我机器上能运行"的困境——开发环境与生产环境的不一致导致…

JS红宝书笔记 8.4 类

与函数类型相似&#xff0c;定义类也有两种主要方式&#xff1a;类声明和类表达式&#xff0c;这两种方式都使用class关键字加大括号 与函数表达式类似&#xff0c;类表达式在它们被求值前也不能引用&#xff0c;不过与函数定义不同的是&#xff0c;虽然函数声明可以提升&…

专题:2025游戏科技与市场趋势报告|附130+份报告PDF汇总下载

原文链接&#xff1a;https://tecdat.cn/?p42733 2024年全球游戏市场规模突破1877亿美元&#xff0c;中国以37.5%的全球占比成为核心增长引擎。生成式AI以52%的企业采用率重塑开发流程&#xff0c;混合休闲游戏实现37%的收入增长&#xff0c;跨端互通产品贡献42%增量。玩家行为…

【沉浸式解决问题】Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

目录 一、问题描述二、场景还原1. 测试mapper2. 测试service 三、原因分析四、解决方案1. DemoApplicationTests2. DemoApplication 后记 一、问题描述 在Application文件中加了ComponentScan注解&#xff0c;此后运行任何测试方法均报错 java.lang.IllegalStateException: Fa…

Ubuntu 和 CentOS 中配置静态 IP

在 Ubuntu 和 CentOS 中配置静态 IP 的方法有所不同&#xff0c;主要因为两者使用的网络管理工具不同。以下是详细步骤&#xff1a; Ubuntu&#xff08;18.04 及更新版本&#xff0c;使用 netplan&#xff09; 1. 查看网卡名称 ip a记录网卡名称&#xff08;如 ens33、eth0&a…

4、做中学 | 二年级下期 Golang整型和浮点型

上篇介绍了哪些数据类型&#xff0c;如何进行声明常量和变量&#xff0c;那么接下来进行详细学习下各个数据类型的使用&#xff01; 一、整数 在go中&#xff0c;整数分为俩类&#xff0c;一个是无符号整数&#xff0c;即0以上数值&#xff1b;另一个是有符号数值&#xff0c;…

C++11 GC Interface:从入门到精通

文章目录 一、引言二、C11简介2.1 C11发展历史2.2 C11新特性概述 三、C11中的垃圾收集支持和基于可达性的泄漏检测3.1 背景与原理3.2 相关标准与接口3.3 示例代码 四、C11 GC interface的使用场景4.1 简化内存管理4.2 提高代码可靠性 五、C23中移除垃圾收集支持和基于可达性的泄…

《高并发系统性能优化三板斧:缓存 + 异步 + 限流》

高并发系统性能优化三板斧&#xff1a;缓存 异步 限流 引言 在互联网应用的高并发场景下&#xff0c;系统性能面临巨大挑战。以某电商平台会员活动为例&#xff0c;活动期间瞬时QPS可达10万&#xff0c;若未进行有效优化&#xff0c;服务器将迅速崩溃。本文从缓存、异步、限…

JVM(4)——引用类型

痛点引入&#xff1a; 为什么需要不同的引用类型&#xff1f;直接只用强引用不行吗&#xff1f;&#xff08;内存泄漏风险、缓存管理粗粒度、对象生命周期监听需求&#xff09; 核心作用&#xff1a; 解释引用类型如何让程序员与垃圾收集器&#xff08;GC&#xff09;协作&…

ONLYOFFICE 文档 9.0 版本已发布:新界面、图表查看器、.md 文件支持、AI 表格与宏等更新

ONLYOFFICE 文档 9.0 版本已正式发布。此次更新包含 20 多项新功能和约 500 项修复&#xff0c;全面提升您的办公效率。从全新界面、突破性的 AI 工具到更广泛的文件格式兼容性&#xff0c;本次发布将带来更加流畅的使用体验。阅读本文&#xff0c;了解详情。 更新全部编辑器的…

关于python-socket服务的问题记录

概述 在使用pythonwebsocket部署socket服务&#xff0c;前端使用小程序来连接&#xff0c;过程中存在以下可能出现的问题&#xff1a; 1&#xff0c;代码里socket端口问题2&#xff0c;服务器配置问题&#xff08;域名解析&#xff1f;Nginx配置是否正确处理了WebSocket升级头…

typescript vs go vs rust

typescript 后端选型&#xff1a; Express &Typescript &trpc 广泛使用&#xff0c;灵活&#xff0c;快速&#xff0c;稳定 Nestjs 企业级&#xff0c;标准化&#xff0c;像java &#xff0c;依赖注入&#xff0c; Hono , web standards framework. Support for any J…

OpenGL和OpenGL ES区别

OpenGL&#xff08;Open Graphics Library&#xff09;和OpenGL ES&#xff08;OpenGL for Embedded Systems&#xff09;都是用于图形渲染的API&#xff0c;但它们的目标平台和设计定位有所不同。 1. 目标平台 OpenGL 主要用于桌面平台&#xff08;如Windows、macOS、Linux&a…

PyTorch 入门之官方文档学习笔记(一)

目录 1 张量 1&#xff09;张量的初始化和属性 2&#xff09;张量操作 3&#xff09;使用 NumPy 进行桥接 2 torch.autograd 1&#xff09;背景 2&#xff09;在 PyTorch 中的使用 3&#xff09;Autograd 的微分机制 4&#xff09;计算图原理 5&#xff09;从计算图中…