(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
相关推荐
每天的每一天9 分钟前
分布式文件系统05-生产级中间件的Java网络通信技术深度优化
java·开发语言·中间件
欧的曼24 分钟前
cygwin+php教程(swoole扩展+redis扩展)
开发语言·redis·后端·mysql·nginx·php·swoole
智江鹏34 分钟前
Android 之 Kotlin中的符号
android·开发语言·kotlin
一叶怎知秋43 分钟前
【openlayers框架学习】九:openlayers中的交互类(select和draw)
前端·javascript·笔记·学习·交互
allenlluo1 小时前
浅谈Web Components
前端·javascript
Mintopia1 小时前
把猫咪装进 public/ 文件夹:Next.js 静态资源管理的魔幻漂流
前端·javascript·next.js
用户1409508112801 小时前
如何在JavaScript中更好地使用闭包?
javascript
flashlight_hi1 小时前
LeetCode 分类刷题:16. 最接近的三数之和
javascript·数据结构·算法·leetcode
艾莉丝努力练剑1 小时前
【C/C++】形参、实参相关内容整理
c语言·开发语言·c++·学习
汪子熙1 小时前
如何使用 Node.js 代码下载 Github issue 到本地
javascript·后端