(PySpark)RDD实验实战——取最大数出现的次数

server/2024/9/22 20:36:07/
实验环境:
提前准备好findspark,pyspark,py4j等库
import findspark
from pyspark import SparkContext, SparkConffindspark.init()
#初始化spark,默认为你所设定的环境变量
conf = SparkConf().setAppName("jsytest").setMaster("local[4]")

#创建一个SparkConf对象,用于配置Spark应用程序,用setAppName来设置程序名称,

#用setMaster来设置运行模式和线程数,这里为本地模式,4个线程

sc = SparkContext(conf=conf)
#创建一个SparkContext对象,它是与Spark集群通信的主要接口
# sc.stop()  #关闭spark上下文
data = [(4),(7),(9),(12),(9),(15),(18),(12),(20),(12)]
#创建所需的数据集
rdd = sc.parallelize(data)
#用parallelize方法将data中的数据结构并行化成RDD
rdd.sortBy(lambda x:x, ascending=True,numPartitions=1).collect()
#rdd.sortBy()用于对RDD中的元素按照指定的排序键进行排序
#rdd.sortBy(keyfunc, ascending=True, numPartitions=None)
#keyfunc,是从 RDD 的每个元素中提取用于排序的键,多分区的话可以通过指定key的排序,来达到操作目的
#ascending表示排序的顺序。 True为升序,False为降序。
#numPartitions表示最终返回结果RDD的分区数。
ss=rdd.sortBy(lambda x:x, ascending=True,numPartitions=1).collect()
#把最终排序导入ss数组中
ysj=rdd.count()-1
#取数据总长,方便后面调用,输出
b=ss[ysj]
#取最大值
c=rdd.filter(lambda x:x==b).count()
#filter起到的作用是一个过滤器,我们这里用它来过滤data中最大值,并用count来记录最大值出现的次数
print("最大值为:",b)
print("出现的次数为:",c)
#输出结果

所有代码演示如下

import findspark
from pyspark import SparkContext, SparkConf
findspark.init()
conf = SparkConf().setAppName("jsytest").setMaster("local[4]")
sc = SparkContext(conf=conf)
data = [(4),(7),(9),(12),(9),(15),(18),(12),(20),(12)]
rdd = sc.parallelize(data)
rdd.sortBy(lambda x:x, ascending=True,numPartitions=1).collect()
ss=rdd.sortBy(lambda x:x, ascending=True,numPartitions=1).collect()
ysj=rdd.count()-1
b=ss[ysj]
c=rdd.filter(lambda x:x==b).count()
print("最大值为:",b)
print("出现的次数为:",c)

运行结果

最大值为: 20
出现的次数为: 1


http://www.ppmy.cn/server/120448.html

相关文章

Redis - 深入理解Redis事务

目录 Redis是如何实现事务的?事务中执行的命令出现错误,会回滚事务吗?同一个连接可以重复开启事务吗?多个客户端同时开启事务会怎样?使用Redis事务只用MULTI和EXEC吗?Redis中的WATCH机制是怎么实现的&#…

【VMvare虚拟机-Ubuntu】解决内存不足问题

VMvare虚拟机-Ubuntu:解决内存不足问题 1 虚拟机额度磁盘分配2 原因:扩展内存导致无法正常开机3 解决方案:硬盘扩容后无法正常开机3.1 选择镜像文件3.2 设置光盘启动优先3.3 在 live 系统中扩容分区3.4 开启虚拟机 另:VMWare虚拟机…

java--JDBC-连接池----JDBC小总结

一.连接池 1.连接池概述 目的:为了解决建立数据库连接耗费资源和时间很多的问题,提高性能。 Connection对象在JDBC使用的时候就会去创建一个对象,使用结束以后就会将这个对象给销毁了(close).每次创建和销毁对象都是耗时操作.需要使用连接池对其进行优…

【RabbitMQ 项目】服务端:数据管理模块之绑定管理

文章目录 一.编写思路二.代码实践 一.编写思路 定义绑定信息类 交换机名称队列名称绑定关键字:交换机的路由交换算法中会用到 没有是否持久化的标志,因为绑定是否持久化取决于交换机和队列是否持久化,只有它们都持久化时绑定才需要持久化。绑…

Java免税商品优选商城:Spring Boot实战

第二章 系统开发关键技术 2.1 JAVA技术 Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterrise JavaBeans)的全面支持,java servlet AI,JS(java server ages&#xff09…

Go大小端理解

文章目录 1. **大端与小端的定义**2. **Go 中的大小端问题**3. **encoding/binary 包的使用**3.1 将数值转换为字节序列3.2 从字节序列解析出数值 4. **大小端的应用场景**4.1 网络传输中的字节序问题4.2 文件读取中的字节序问题 5. **检测系统字节序**6. **总结** 在 Go 语言中…

华为HarmonyOS地图服务 5 - 利用UI控件和手势进行地图交互

场景介绍 本章节将向您介绍如何使用地图的手势。 Map Kit提供了多种手势供用户与地图之间进行交互,如缩放、滚动、旋转和倾斜。这些手势默认开启,如果想要关闭某些手势,可以通过MapComponentController类提供的接口来控制手势的开关。 接口…

Python 二级考试

易错点 电脑基础知识 定义学生关系模式如下:Student (S#, Sn, Ssex,class,monitorS#)(其属性分别为学号、学生名、性别、班级和班长学号) 在关系模式中,如果…