【发布时间】:2011-07-15 20:46:39
【问题描述】:
我正在研究 map reduce 程序,并正在考虑设计以下形式的计算,其中a1, b1 是与键关联的值
a1/b1, a1+a2/b1+b2, a1+a2+a3/b1+b2+b3 ...
所以在 reducer 的每个阶段,我都需要之前的值。 如何将其设计为 map reduce,因为在每个阶段只能读取与特定键关联的值。
如果你觉得这个问题不清楚,你能指导我回答这个一般性问题吗?
更一般的问题:如何在 map reduce 中使用递归开发斐波那契数列?
编辑
你能帮我修改一下设计吗
key1, V1,V2,V3
Key2, V4,V5,V6
映射器输出
Key1_X V1
Key1_Y V2
Key2_X V4
Key2_Y V5
减速机输出
Key1_X {V1,.....}
Key1_Y {V2,.....}
同样,现在处于下一个映射器阶段。我可以创建这样的列表吗:
key1 {V1,....} {V2,....}
Key2 {V4,....} {V5,....}
我这样做的原因是为了执行:
Key1 {V1/V2, V1+V6/V2+V7, V1+V6+..../V2+V7+.. , .........}
可以这样做吗?因为数据集很大,所以我觉得还是用map reduce比较好。
改变设计是否有助于提高效率?
【问题讨论】:
-
除法运算符两边的术语周围是否有不可见的括号?
-
更改问题的措辞不会改变您正在解决的问题的根本问题。我仍然认为 MR 对于这类问题效率低下。