(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上下文
data = [(1),(5),(7),(10),(23),(20),(6),(5),(10),(7),(10)]
复制代码
#创建所需的数据集
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的分区数。
ysj=int(rdd.count()/2)
复制代码
#取data的数据长度并取中间值
ss=rdd.sortBy(lambda x:x, ascending=True,numPartitions=1).collect()
复制代码
##把最终排序导入ss数组中
print(ss[ysj])
复制代码
#输出结果

最终全代码演示如下:

import findspark
from pyspark import SparkContext, SparkConf
findspark.init()
conf = SparkConf().setAppName("jsytest").setMaster("local[4]")
sc = SparkContext(conf=conf)
data = [(1),(5),(7),(10),(23),(20),(6),(5),(10),(7),(10)]
rdd = sc.parallelize(data)
rdd.sortBy(lambda x:x, ascending=True,numPartitions=1).collect()
ysj=int(rdd.count()/2)
ss=rdd.sortBy(lambda x:x, ascending=True,numPartitions=1).collect()
print(ss[ysj])

运行结果演示

7
相关推荐
cdut_suye几秒前
STL之list篇(上)初识list容器,了解其核心机制,实例化对象进行分析
开发语言·c++·学习·算法·stl·list
南宫理的日知录1 分钟前
84、Python之鸭子类型:魔术方法&自定义类型也可以实现加减乘除
开发语言·python·学习·编程学习
界面开发小八哥2 分钟前
「Qt Widget中文示例指南」如何实现一个平板电脑示例?(一)
开发语言·c++·qt·界面控件·ui开发
AI算法董同学8 分钟前
VS Code 配置 Anaconda Python 环境
开发语言·windows·vscode·python·编辑器
夏天想13 分钟前
uni-app+vue3+pina实现全局加载中效果,自定义全局变量和函数可供所有页面使用
前端·javascript·uni-app
s_little_monster17 分钟前
【C++】继承(下)
开发语言·c++·经验分享·笔记·学习·学习方法
林九生19 分钟前
【Golang】(推荐项目)Go后端工程项目
开发语言·后端·golang
聪根大牛成长日记!20 分钟前
STL容器之----string的常见接口介绍及模拟实现部分接口(c++)
开发语言·c++
重生成为码农‍20 分钟前
Java高级Day52-BasicDAO
java·开发语言·windows
深情废杨杨23 分钟前
前端vue-form表单的验证
前端·javascript·vue.js