spark 统计,排序

在xshell里面创建一个文件,并且上传

(a,b,c,d)代表的是玩家,(r1,r2,r3)代表的是区,数字代表花的钱数

spark 统计,排序_第1张图片

上传文件,(文件的名字叫wagzhe)


打开文件,转成RDD模式,然后输出一下看看是否正确


输出结果:


统计一下每个区转了多少钱(每个人花了多少钱和这个例子一样就是把玩家作为键 把钱数作为值)

先用map(lambda x:x.split(","))给它拆分开,拆分后的样式就是[(a,r1,87),(a,r2,50)......],x[1]是区(键),x[2]是钱数(是值)

用redecuByKey()统计一下结果就出来了


输出结果:



统计一下每个人在每个区花了多少钱

把玩家和区作为键,花的钱数作为值去统计,


输出结果:


按花的钱去排序


用sortByKey()方法,排序的时候他是按下标0 去排序的所以我们要颠倒一下位置给它上面的

这句话就是颠倒位置的

接下来先按姓名排序,如果姓名相同的话就按区排序

spark 统计,排序_第2张图片

以逗号进行拆分,然后前面两个是键,后面是值

x[0][1]代表的是上面键里的第二个值,把它作为键,然后按倒序的方法排序(就是先按区排序的)

第一次排序结果:


在rdd7的基础上在按玩家排序,上次的排序结果不会变

最后在组合一下输出:


输出结果:


也可以用这种方法




你可能感兴趣的:(spark 统计,排序)