(PySpark)RDD实验实战——求商品销量排行

复制代码
实验环境:

提前准备好findspark,pyspark,py4j等库

复制代码
import findspark
from pyspark import SparkContext, SparkConf

findspark.init()
复制代码
#初始化spark,默认为你所设定的环境变量
复制代码
conf = SparkConf().setAppName("jsytest").setMaster("local[4]")
复制代码
#创建一个SparkConf对象,用于配置Spark应用程序,用setAppName来设置程序名称,
#用setMaster来设置运行模式和线程数,这里为本地模式,4个线程
复制代码
sc = SparkContext(conf=conf)
复制代码
#创建一个SparkContext对象,它是与Spark集群通信的主要接口
# sc.stop()  #关闭spark上下文
复制代码
goods = [("Book",30,50),("Pen",5,80),("Notebook",15,60),("Pencil",2,70),("Eraser",3,50)]
复制代码
#创建所需的数据集(商品名,价格,销量)
复制代码
n=2
复制代码
#所需的前n个排序
复制代码
rdd = sc.parallelize(goods)
复制代码
#用parallelize方法将goods中的数据结构并行化成RDD
复制代码
rdd.sortBy(lambda x:x[2], ascending=True,numPartitions=3).collect()
复制代码
#rdd.sortBy()用于对RDD中的元素按照指定的排序键进行排序
#rdd.sortBy(keyfunc, ascending=True, numPartitions=None)
#keyfunc,是从 RDD 的每个元素中提取用于排序的键,多分区的话可以通过指定key的排序,来达到操作目的
#ascending表示排序的顺序。 True为升序,False为降序。
#numPartitions表示最终返回结果RDD的分区数。
#这里取的是数据中的第三分区销量作为key,返回的值也是三个分区
复制代码
ss=rdd.sortBy(lambda x:x[2], ascending=True,numPartitions=3).collect()
复制代码
##把最终排序导入ss数组中
复制代码
c=rdd.count()-1
复制代码
#取数组上限
复制代码
ysj=0
复制代码
#记录循环次数
复制代码
while ysj<=n-1:
#循环输出
        print("销售第",ysj+1,"多的:",ss[c-ysj])

        ysj=ysj+1

所有代码如下

复制代码
import findspark
from pyspark import SparkContext, SparkConf
findspark.init()
conf = SparkConf().setAppName("jsytest").setMaster("local[4]")
sc = SparkContext(conf=conf
goods = [("Book",30,50),("Pen",5,80),("Notebook",15,60),("Pencil",2,70),("Eraser",3,50)]
n=2
rdd = sc.parallelize(goods)
rdd.sortBy(lambda x:x[2], ascending=True,numPartitions=3).collect()
ss=rdd.sortBy(lambda x:x[2], ascending=True,numPartitions=3).collect()
c=rdd.count()-1
ysj=0
while ysj<=n-1:
        print("销售第",ysj+1,"多的:",ss[c-ysj])
        ysj=ysj+1

结果演示

复制代码
销售第 1 多的: ('Pen', 5, 80)
销售第 2 多的: ('Pencil', 2, 70)
相关推荐
Minner-Scrapy5 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
CODER03045 小时前
Anaconda和Mamba创建环境管理包常用命令合集
python·深度学习·conda·虚拟环境·mamba·常用命令大全
闲猫5 小时前
LangGraph / Capabilities / Fault tolerance
python·agent·langgraph
IvanCodes5 小时前
Python 基础语法(一):变量、数据类型与运算符
python
程序员三藏6 小时前
浅谈性能测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
l1258656 小时前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计
数据库·python·mysql·langchain
meilindehuzi_a7 小时前
Python 基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
Zane19947 小时前
调用了 async 函数却没执行?一文讲透协程、event loop 与 await
后端·python
OPEN-F7 小时前
Python进阶教程:装饰器与生成器深入
开发语言·python
zhipujiaoyu8 小时前
2026年大数据专科何去何从?就业前景、发展趋势全揭秘!
大数据·python