MapReduce编程基础(二)——数值概要(计算中位数、标准差)

本文介绍了一种使用MapReduce计算中位数和标准差的方法,虽然能够得出结果,但在处理大规模数据时因需全部加载到内存而可能导致内存溢出。通过自定义Writab类、Mapper和Reducer代码进行实现,但不建议在大数据场景下使用,因为存在内存消耗问题。
摘要由CSDN通过智能技术生成

1.中位数与标准差计算示例

中位数与标准差的计算相对于平均值、最大值、最小值的计算要相对更加复杂一些。因为这两个计算不满足交换律和结合律,所以不能向之前那样轻松的使用combiner。

1.中位数与标准差

中位数是将数据集从高到低进行排序,取中间的那个值。这要求数据集是完整的,并且是混排过的。
标准差显示了数据相对于平均值的变化情况,因此需要在简化之前计算出数据的平均值。

2.数据集

本示例使用Movielens数据集中的u1.base文件,MovieLens数据集是一个用户对电影的评分数据集,在后续的示例中我们将一直使用这个数据集,我会将这个数据集上传到CSDN方便大家下载,文件的格式如下所示:
第1列到第4列分别代表用户ID,项目ID,用户对项目的评分时间戳

1   1   5   874965758
1   2   3   876893171
1   3   4   878542960
1   4   3   876893119
1   5   3   889751712
1   7   4   875071561
1   8   1   875072484
...      ....    ....
943 1067    2   875501756
943 1074    4   888640250
943 1188    3   888640250
943 1228    3   888640275
943 1330<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值