Java MapReduce中的函数组合

Java MapReduce中的函数组合,java,algorithm,math,hadoop,mapreduce,Java,Algorithm,Math,Hadoop,Mapreduce,假设我们有两个文件f1和f2,它们的键值对表示数学意义上的函数。使用MapReduce查找其合成的最简单方法是什么?最有效的方法是什么 例如,假设: f1 a -> b x -> y s -> t f2 b -> c t -> r f1 . f2 (composition of f1 and f2) would be a -> c s -> r 将f1反转为f1' 同时在f1'和f2上进行地图缩小。对于f2中的每个x->v2,以及f1'中的所有x-

假设我们有两个文件f1和f2,它们的键值对表示数学意义上的函数。使用MapReduce查找其合成的最简单方法是什么?最有效的方法是什么

例如,假设:

f1
a -> b
x -> y
s -> t

f2
b -> c
t -> r

f1 . f2 (composition of f1 and f2) would be
a -> c
s -> r
  • f1
    反转为
    f1'

  • 同时在
    f1'
    f2
    上进行地图缩小。对于
    f2
    中的每个
    x->v2
    ,以及
    f1'
    中的所有
    x->k1
    (如果有),输出
    k1->v2

  • 只有当
    f1
    的范围相当大时,这才有效。如果太多的
    k1
    映射到同一
    v1
    ,则相应的映射工作程序将被淹没

  • f1
    反转为
    f1'

  • 同时在
    f1'
    f2
    上进行地图缩小。对于
    f2
    中的每个
    x->v2
    ,以及
    f1'
    中的所有
    x->k1
    (如果有),输出
    k1->v2


  • 只有当
    f1
    的范围相当大时,这才有效。如果太多的
    k1
    映射到同一
    v1
    ,则相应的映射工作程序将被淹没

    在步骤1中,只能反转f1。如何反转f2?在步骤1中,只能反转f1。如何通过反转f2来实现这一点?