mapreduce算中位数

转自  http://blog.sina.com.cn/s/blog_7905e70c0101kz7d.html
Suppose you have a master node (or are able to use a consensus protocol to elect a master from among your servers). The master first queries the servers for the size of their sets of data, call this n, so that it knows to look for the k = s*n/2 largest element.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MapReduce是一种用于处理大数据集的分布式计模型。要MapReduce模型中中位数,可以参考以下步骤: 1. Map阶段:将输入的数据划分为小块,并在每块数据上执行映射操作。对于每个映射操作,可以将数据分为键值对,其中键是一个标识数据所在的块,值是块中的元素。 2. Shuffle和Sort阶段:将Map阶段得到的键值对根据键进行分组,并按照键进行排序。这可以保证具有相同键的数据会被发送到同一个Reduce任务进行处理。 3. Reduce阶段:对于每个Reduce任务,输入是按照键排序的键值对列表。在Reduce阶段,可以对每个键值对列表计中位数。具体的中位数的方法可以有多种。 一种常用的方法是: - 将键值对列表按照值进行排序。 - 通过遍历键值对列表找到中位数。如果列表长度为奇数,则中位数位置为(列表长度+1)/2;如果列表长度为偶数,则中位数位置为列表长度/2和(列表长度/2+1)的平均值。 - 输出中位数作为Reduce任务的结果。 4. 最后,可以将所有Reduce任务的结果汇总起来得到整个数据集的中位数。 需要注意的是,MapReduce模型适用于大规模数据集,因此在处理中位数时需要将数据划分为合适的块,并设计合理的法来保证处理效率和准确性。以上是简要的过程描述,具体的实现可以根据数据的特点和计进行进一步优化和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值