RDD实战:排序算子 - sortBy()

在这里插入图片描述

在本实战案例中,我们将使用Apache Spark的sortBy()算子来对一个包含学生信息的RDD进行排序操作。
排序规则如下:

  1. 首先按照性别升序排列。
  2. 在性别相同的情况下,按照年龄降序排列。

步骤1:创建学生信息列表

首先,我们创建一个包含学生姓名、性别和年龄的三元组列表。这个列表将被用来创建RDD。

val students = List(Tuple3("张三丰", "男", 25),Tuple3("李文秀", "女", 28),Tuple3("童安格", "男", 19),Tuple3("陈燕文", "女", 30),Tuple3("肖雨涵", "男", 24),Tuple3("郑晓玲", "女", 18),Tuple3("唐宏伟", "男", 29),Tuple3("肖梦馨", "女", 17)
)

在这里插入图片描述

步骤2:基于列表创建RDD

使用Spark上下文(sc)的makeRDD方法将学生列表转换为RDD。

val rdd = sc.makeRDD(students)

在这里插入图片描述

步骤3:按性别升序排序

使用sortBy()算子对RDD进行排序,首先按照性别升序排列。

val rdd1 = rdd.sortBy(_._2, true)

在这里插入图片描述

rdd1.collect.foreach(println)

在这里插入图片描述

根据显示结果,按性别升序排列,女生在前,男生在后

步骤4:筛选并排序

接下来,我们将RDD分为两个部分:女生和男生。然后,对每个部分分别按照年龄进行降序排序。

val rdd_f = rdd.filter(_._2 == "女").sortBy(_._3, false) // 筛选女生并按年龄降序排序
val rdd_m = rdd.filter(_._2 == "男").sortBy(_._3, false) // 筛选男生并按年龄降序排序

在这里插入图片描述

步骤5:合并排序后的RDD

最后,我们将排序后的女生RDD和男生RDD合并为一个新的RDD。

val result = rdd_f.union(rdd_m)

在这里插入图片描述

步骤6:输出结果

最后,我们将合并后的RDD中的内容逐行打印出来,以查看排序结果。

result.collect.foreach(println)

在这里插入图片描述

通过这个实战案例,我们可以学习到如何使用Spark的sortBy()算子对RDD进行复杂的排序操作,以及如何通过过滤和合并操作来实现多级排序规则。这在处理大型数据集时非常有用,可以帮助我们根据特定的业务规则对数据进行排序和组织。

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

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

相关文章

基于51单片机和NRF24L01的无线温度监控设计

一、设计功能 由单片机、温度传感器、无线模块NRF24L01以及液晶显示器等构成高精度远 程无线温度监测系统。 温度显示精确到小数点后一位。 按键设定过温值,过温在液晶屏提示。 系统设计 三、器件选择3.1温度信号采集模块 传统的温度检测大多以热敏电阻为传感器&a…

【C++】list的使用(上)

🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 前言🌈关于list🔥默认成员函数构造函数(constructor)析构函数(destructor)赋值运算符重载 &#x1…

五分钟“手撕”栈

实现代码放开头,供大家学习与查阅 目录 一、实现代码 二、什么是栈 三、栈的常见操作 底层实现是链表。 入栈 出栈 四、Stack的使用 五、栈的习题 第一题 第二题 第三题 第四题 第五题 第六题 第七题 六、栈、虚拟机栈、栈帧的区别 目录 一、…

Request

一、Request介绍 在计算机网络中,"Request"(请求)通常指的是客户端向服务器发送的请求消息,用于获取特定资源或执行特定操作。在Web开发中,"Request"通常指的是HTTP请求,用于客户端与服…

信号稳定,性能卓越!德思特礁鲨系列MiMo天线正式发布!

作者介绍 礁鲨系列天线,以其独特的外观设计和强大的性能,成为德思特Panorama智能天线家族的最新成员。这款天线不仅稳定提供5G、WIFI和GNSS信号,更能在各类复杂环境中展现出卓越的性能。它的设计灵感来源于海洋中的礁鲨,象征着力量…

内存管理【C++】

内存分布 C中的内存区域主要有以下5种 栈(堆栈):存放非静态局部变量/函数参数/函数返回值等等,栈是向下增长的【地址越高越先被使用】。栈区内存的开辟和销毁由系统自动执行 堆:用于程序运行时动态内存分配&#xff…

电脑丢失api-ms-win-crt-runtime-l1-1-0.dll的多种修复方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“api-ms-win-crt-runtime-l1-1-0.dll丢失”。这个错误通常发生在Windows操作系统中,它表示一个动态链接库文件丢失或损坏。这个问题可能会导致某些应用程序无法正常运行&#xf…

大型企业用什么文件加密软件,五款适合企业的文件加密软件

大型企业在选择文件加密软件时,通常会倾向于那些能够提供全面数据保护、具有高度可定制性、易于管理且能适应复杂组织结构的解决方案。以下是一些适合大型企业使用的文件加密软件: 1.域智盾软件: 作为一款企业级文件加密软件,支持…

曲面细分技术在AI去衣中的创新应用

引言: 随着人工智能技术的飞速发展,其在图像处理领域的应用日益广泛。其中,AI去衣技术因其独特的应用场景而备受瞩目。在这一技术的发展过程中,曲面细分技术发挥了至关重要的作用。本文将深入探讨曲面细分技术在AI去衣中的作用及其…

C语言-单精度和双精度浮点型

文章目录 一、遇到的问题二、解决方案三、问题根因float和double的区别: 总结-浮点数 一、遇到的问题 将NXP项目的代码移植到RH850F1K的项目上时,程序运行异常: u16Volt (uint16)((double)u16ADVal * (double)6.3) 执行到这一行程序就跑飞了…

vue3可以快速简单的操作dom元素了

再也不需要用document.getElementById("myElement")的这种方式来对dom元素进行操作了 我们需要使用模板引用——也就是指向模板中一个 DOM 元素的 ref。我们需要通过这个特殊的 ref attribute 来实现模板引用&#xff1a; <script setup> import { ref, onMo…

wafw00f一键检测目标防火墙信息(KALI工具系列十五)

目录 1、KALI LINUX简介 2、wafw00f工具简介 3、在KALI中使用lbd 3.1 查看可检测的防火墙对象 3.2 目标防火墙种类检测 3.3 目标防火墙详细信息检测 3.4 将检查结果输出 4、总结 1、KALI LINUX简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版&#xff0c;广…

最好的电脑数据恢复软件是什么

由于硬件故障、恶意软件攻击或意外删除而丢失文件可能会造成巨大压力。数据丢失会扰乱日常运营&#xff0c;造成宝贵的业务时间和资源损失。在这些情况下&#xff0c;数据恢复软件是检索丢失或损坏数据的最简单方法。 数据恢复软件何时起作用&#xff1f; 对于 Windows 数据恢…

vue3组件传值---vue组件通过属性,事件和provide,inject进行传值

通过属性传值&#xff08;父传子&#xff09; vue的组件具有props自建属性&#xff08;自定义名称&#xff0c;类似于class&#xff0c;id的属性&#xff09;&#xff0c;通过这个属性&#xff0c;父组件可以向子组件传递参数&#xff0c;从而实现组件之间的信息传递&#xff0…

CSDN UI 2024.06.01

当我们的栏目很多的时候&#xff0c;通过【置顶】来排列顺序是很麻烦的&#xff0c;应该加一列&#xff0c;设置优先级别。太难用了 或者加两个按钮【上移】 【下移】

极验4点选逆向 JS逆向分析 最新版验证码

目录 声明&#xff01; 一、请求流程分析 二、加密参数w与payload 三、参数w生成位置 四、结果展示&#xff1a; 原创文章&#xff0c;请勿转载&#xff01; 本文内容仅限于安全研究&#xff0c;不公开具体源码。维护网络安全&#xff0c;人人有责。 声明&#xff01; 本文章…

升级笔记本

笔记本型号参数&#xff1a;Acer V5-573G CPU:I5 4200U 1.6GHz 最高2.6GHz 双核四线程 内存&#xff1a;4G 1600M DDR3L SO-DIMM 显卡&#xff1a;独立显卡NVIDIA GeForce GT 750M 硬盘&#xff1a;1T 5400转 屏幕&#xff1a;15.6英寸 1920*1080 【Acer V5-573G-54204G1…

WIFI 万[néng]钥匙 v5.0.10/v4.9.80 SVIP版!

WiFi Master Key v5.0.10/v4.9.80 WIFI万[Nng]钥匙APP是一款专业的网络连接工具&#xff0c;设计宗旨在于为用户提供方便快捷的WiFi接入方案。本应用集成了覆盖全国的大量免费WiFi热点信息&#xff0c;确保用户能够在不同地区快速而稳定地连接到互联网。此外&#xff0c;该应用…

atcoder350,351,352,353,354,355期部分题解

声明&#xff1a;有些题感觉已经说到很明白了&#xff0c;就先不写代码了&#xff0c;有空会补上 目录 350D: new friend 350E: toward 0 351D:Grid and Magnet 352D:permutation subsequence 353C: sigma problem 353D: another sigma problem 354C: atcoder magics …

神经网络与深度学习——第6章 循环神经网络

本文讨论的内容参考自《神经网络与深度学习》https://nndl.github.io/ 第6章 循环神经网络 给网络增加记忆能力 延时神经网络 有外部输入的非线性自回归模型 循环神经网络 简单循环网络 循环神经网络的计算能力 循环神经网络的通用近似定理 图灵完备 应用到机器学习 序列到类…