(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
相关推荐
火山灿火山几秒前
Qt信号和槽
开发语言·qt
m0_740043731 分钟前
父组件 子组件
javascript·vue.js·ecmascript
爱吃无爪鱼2 分钟前
05-JavaScript/TypeScript 项目结构完全解析
javascript·react.js·typescript·前端框架·npm·html·sass
这样の我6 分钟前
java 模拟chrome tls指纹
java·开发语言·chrome
m0_661279188 分钟前
学习笔记-安装并启动 Jupyter Noteboo
开发语言·python
代码or搬砖8 分钟前
常见的五个编译时异常和常见的五个编译时异常
开发语言·php
渴望成为python大神的前端小菜鸟8 分钟前
JS宏任务 & 微任务 API 速查表
javascript
前端小王呀11 分钟前
自定义图表相关配置
android·前端·javascript
烽火聊员12 分钟前
SSLSocket 服务器端WPF C#测试代码
开发语言·c#·wpf·ssl
茉莉玫瑰花茶13 分钟前
ProtoBuf - 1 - 下载和环境配置
开发语言·c++·protobuf