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

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(): Array[T]

        函数说明

                在驱动程序中,以数组 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进行数据关联操作的代码

 

相关文章:

spark-core编程2

Key-Value类型&#xff1a; foldByKey 当分区内计算规则和分区间计算规则相同时&#xff0c;aggregateByKey 就可以简化为 foldByKey combineByKey 最通用的对 key-value 型 rdd 进行聚集操作的聚集函数&#xff08;aggregation function&#xff09;。类似于aggregate()&…...

AIDD-人工智能药物设计-大语言模型在医学领域的革命性应用

Nat. Rev. Bioeng. | 大语言模型在医学领域的革命性应用 大型语言模型&#xff08;LLMs&#xff09;&#xff0c;如 ChatGPT&#xff0c;因其对人类语言的理解与生成能力而备受关注。尽管越来越多研究探索其在临床诊断辅助、医学教育等任务中的应用&#xff0c;但关于其发展、…...

Windows 系统中安装 Git 并配置 GitHub 账户

由于电脑重装系统&#xff0c;重新配置了git. 以下是在 Windows 系统中安装 Git 并配置 GitHub 账户的详细步骤&#xff1a; 1. 安装 Git 访问 Git 官网下载页面下载 Windows 版本的 Git 安装程序运行安装程序&#xff0c;使用默认选项即可 2. 配置 Git 用户信息 打开命令…...

QQ风格客服聊天窗口

QQ风格客服聊天窗口 展示引入方式 展示 引入方式 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&g…...

fastadmin后端添加页面,自主控制弹出框关闭,关闭父页面弹框

Form.api.bindevent($(“form[roleform]”), (data, ret) > { 重写绑定事件,返回false即可 注意:只有返回code1才能拦截,其他值不进行拦截 add: function () {//获取当前search里面的type值var type location.search.split(type)[1];Form.api.bindevent($("form[role…...

leetcode572 另一棵树的子树

1.与100、101解法相同 递归&#xff1a; class Solution { private:bool compare(TreeNode* p, TreeNode* q){if(!p && !q) return true;else if(!p || !q) return false;else if(p->val ! q->val) return false;bool leftside compare(p->left, q->lef…...

MCU刷写——Hex文件格式详解及Python代码

工作之余来写写关于MCU的Bootloader刷写的相关知识,以免忘记。今天就来聊聊Hex这种文件的格式,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问,可底下评论! 如果觉得文章内容在工作学习中有帮助到你,麻烦点赞收藏评论+关注走一波!感谢…...

ubnetu 服务器版本常用端口和开放的端口对应的应用

1. 使用 netstat 查看端口与进程 netstat 是查看网络连接和监听端口的常用工具。通过以下命令可以列出所有开放的TCP/UDP端口及其关联的进程&#xff1a; sudo netstat -tulnp参数解析&#xff1a; -t&#xff1a;显示TCP端口。 -u&#xff1a;显示UDP端口。 -l&#xff1…...

汇舟问卷:国外问卷调查技巧有哪些,具体该怎么操作

大家好&#xff0c;我是汇舟问卷&#xff0c;今天咱们就聊聊国外问卷答题的技巧和操作步骤&#xff0c;保你听完立马能上手&#xff01; 一、答题前先创建人设 1&#xff0c;进题时先瞄两眼问题&#xff0c;快速判断问卷主题&#xff0c;再定人设。比如遇到奶粉问卷&#xff…...

DeepSeek的神经元革命:穿透搜索引擎算法的下一代内容基建

DeepSeek的神经元革命&#xff1a;穿透搜索引擎算法的下一代内容基建 ——从语义网络到价值共识的范式重构 一、搜索引擎的“内容饥渴症”与AI的基建使命 2024年Q1数据显示&#xff0c;百度索引网页总数突破3500亿&#xff0c;但用户点击集中在0.78%的高价值页面。这种“数据…...

C++标识符:检查是否和保留字冲突

1. 基础知识 最基本的要求&#xff1a; 字母、数字、下划线组成&#xff0c; 并且不能是数字开头。 禁忌1&#xff1a; C 关键字不能用做标识符。 它们是&#xff1a; alignas alignof asm auto bool break case catch char char16_t char32_t class const constexpr const_…...

《Python星球日记》第27天:Seaborn 可视化

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 专栏&#xff1a;《Python星球日记》&#xff0c;限时特价订阅中ing 目录 一、Seabor…...

自动驾驶技术-相机_IMU时空标定

自动驾驶技术-相机_IMU时空标定 时间延迟 时间延迟 参考链接1、2 相机主要分为全局和卷帘快门相机&#xff0c;从触发到成像的过程包括&#xff1a;复位时间、AE()曝光时间、读出时间 全局快门如下图所示 卷帘快门如下图所示 相机录制视频时&#xff0c;为了保持固定频率&am…...

第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 部分题解

题面链接Htlang/2025lqb_python_b 个人觉得今年这套题整体比往年要简单许多&#xff0c;但是G题想简单了出大问题&#xff0c;预估50101015120860&#xff0c;道阻且长&#xff0c;再接再厉 A: 攻击次数 答案&#xff1a;103&#xff1f;181&#xff1f;题目没说明白每回合是…...

HTTP:三.HTTP连接

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本数据的应用层协议。它是互联网上最常用的协议,用于在客户端和服务器之间传输数据。HTTP协议通常用于从Web服务器传输网页和文件到客户端浏览器,并支持其他用途,如传输API数据和传输文件。 HTTP连接是指客户端向服务…...

Oracle 复制表结构(含索引、主键)操作指南

Oracle 复制表结构&#xff08;含索引、主键&#xff09;操作指南 1. 复制基础表结构 -- 创建空表结构&#xff08;不复制数据&#xff09; CREATE TABLE new_table AS SELECT * FROM old_table WHERE 10;2. 复制主键约束 -- 查询原表主键信息 SELECT constraint_name, co…...

”插入排序“”选择排序“

文章目录 插入排序1. 直接插入排序(O(n^2))举例1&#xff1a;举例2&#xff1a;直插排序的"代码"直插排序的“时间复杂度” 2. 希尔排序(O(n^1.3))方法一方法二(时间复杂度更优) 选择排序堆排序直接选择排序 我们学过冒泡排序&#xff0c;堆排序等等。&#xff08;回…...

烟花爆竹储存作业安全要求

烟花爆竹储存作业证是从事相关作业的法定凭证&#xff0c;旨在确保操作人员具备专业知识和安全技能&#xff0c;防止因违规操作引发火灾、爆炸等事故。根据《烟花爆竹安全管理条例》及相关法规&#xff0c;未取得作业证的人员不得从事烟花爆竹储存、搬运、管理等作业。 仓库选址…...

Python深度学习基础——卷积神经网络(CNN)(PyTorch)

CNN原理 从DNN到CNN 卷积层与汇聚 深度神经网络DNN中&#xff0c;相邻层的所有神经元之间都有连接&#xff0c;这叫全连接&#xff1b;卷积神经网络 CNN 中&#xff0c;新增了卷积层&#xff08;Convolution&#xff09;与汇聚&#xff08;Pooling&#xff09;。DNN 的全连接…...

Python(11)Python判断语句全面解析:从基础到高级模式匹配

目录 一、条件逻辑的工程价值1.1 真实项目中的逻辑判断1.2 判断语句类型矩阵 二、基础判断深度解析2.1 多条件联合判断2.2 类型安全判断 三、模式匹配进阶应用3.1 结构化数据匹配3.2 对象模式匹配 四、判断语句优化策略4.1 逻辑表达式优化4.2 性能对比测试 五、典型应用场景实战…...

MTK7628基于原厂的mtk-openwrt-sdk-20160324-8f8e4f1e.tar.bz2 源代码包,配置成单网口模式的方法

一、配置. 在SDK工程下&#xff0c;运行make kernel_menuconfig&#xff0c;如下图所示&#xff1a; Ralink Module --->选上“One Port Only”&#xff0c;如下图所示&#xff1a; 如果P0网口实现WAN口&#xff0c;就配置成W/LLLL,否则就配置成LLLL/W. 二、修改网口的原代…...

艾伦·图灵:计算机科学与人工智能之父

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 艾伦图灵&#xff1a;计算机科学与人工智能之父 一、天才的诞生与早期生涯 1912年6月…...

策略模式实现 Bean 注入时怎么知道具体注入的是哪个 Bean?

Autowire Resource 的区别 1.来源不同&#xff1a;其中 Autowire 是 Spring2.5 定义的注解&#xff0c;而 Resource 是 Java 定义的注解 2.依赖查找的顺序不同&#xff1a; 依赖注入的功能&#xff0c;是通过先在 Spring IoC 容器中查找对象&#xff0c;再将对象注入引入到当…...

React九案例中

代码下载 地图找房模块 顶部导航栏 封装NavHeader组件实现城市选择&#xff0c;地图找房页面的复用&#xff0c;在 components 目录中创建组件 NavHeader&#xff0c;把之前城市列表写过的样式复制到 NavHeader.scss 下&#xff0c;在该组件中封装 antd-mobile 组件库中的 N…...

第一期:[特殊字符] 深入理解MyBatis[特殊字符]从JDBC到MyBatis——持久层开发的转折点[特殊字符]

前言 &#x1f31f; 在软件开发的过程中&#xff0c;持久层&#xff08;或数据访问层&#xff09;是与数据库进行交互的关键部分。早期&#xff0c;开发者通常使用 JDBC&#xff08;Java Database Connectivity&#xff09;来实现与数据库的连接与操作。虽然 JDBC 在一定程度上…...

Adobe Photoshop 2025 Mac中文 Ps图像编辑

Adobe Photoshop 2025 Mac中文 Ps图像编辑 一、介绍 Adobe Photoshop 2025 Mac版集成了多种强大的图像编辑、处理和创作功能。①强化了Adobe Sensei AI的应用&#xff0c;通过智能抠图、自动修复、图像生成等功能&#xff0c;用户能够快速而精确地编辑图像。②3D编辑和动画功…...

用纯Qt实现GB28181协议/实时视频/云台控制/预置位/录像回放和下载/事件订阅/语音对讲

一、前言 在技术的长河中探索&#xff0c;有些目标一旦确立&#xff0c;便如同璀璨星辰&#xff0c;指引着我们不断前行。早在2014年&#xff0c;我心中就种下了用纯Qt实现GB28181协议的种子&#xff0c;如今回首&#xff0c;一晃十年已逝&#xff0c;好在整体框架和逻辑终于打…...

让你方便快捷实现主题色切换(useCssVar)

文章目录 前言一、useCssVar是什么&#xff1f;二、使用步骤1.安装依赖2.实现主题色切换 总结 前言 使用 CSS 变量&#xff08;CSS Custom Properties&#xff09;实现主题色切换是一种高效且易于维护的方法。通过将主题颜色定义为 CSS 变量&#xff0c;你可以轻松地在不同主题…...

面试之《websocket》

配置环境 mkdir express cd express npm init npm install express ws// index.js var app require("express")(); var WebSocket require("ws");var wss new WebSocket.Server({ port: 8888 });wss.on(connection, function connection(ws) {ws.on(m…...

Linux 内存调优之系统内存全面监控

写在前面 博文内容涉及 Linux 全局内存监控监控方式包括传统工具 vmstat/top/free/sar/slabtop ,以及 systemd-cgtop,proc 内存伪文件系统监控内容包括进程内存使用情况, 内存全局数据统计,内存事件指标,以及进程内存段数据监控理解不足小伙伴帮忙指正 😃,生活加油我看远…...