【问题标题】:Map Reduce job designMap Reduce 作业设计
【发布时间】:2015-06-23 18:26:02
【问题描述】:

您好,我有一个像这样的大型数据集

cp1 -> List(P1,P2,P3)
cp2 -> List(P4,P5,P6)
cp3 -> List(P7,P8,P9)
cp4 -> List(P10,P11,P12)
cp5 -> List(P13,P14,P15)

我想编写一个可以产生以下输出的 MR 作业。所以所有键的值都是相同的。

p3 -> List(cp1,cp2,cp3,cp4,cp5)
p6 -> List(cp1,cp2,cp3,cp4,cp5)  
p9 -> List(cp1,cp2,cp3,cp4,cp5)
p12 -> List(cp1,cp2,cp3,cp4,cp5)
p15 -> List(cp1,cp2,cp3,cp4,cp5) 

谁能帮我设计一下这个

谢谢 私信

【问题讨论】:

  • 请正确弹出您需要的输出。他们没有任何逻辑。所有键的唯一逻辑是相同的列表。以及为什么只有几个键 p3、p6、p9 等以及其他键丢失。是否只有列表的最后一个值成为输出中的键?
  • 是的,它是列表的最后一个元素。是的,它是 values 中所有最后一个元素的相同键列表。这是第一步。一旦我像这样构建了列表,我将有一个步骤 2,对 p3 和 List(cp1,cp2,cp3,cp4,cp5) 和 p6 和 List(cp1,cp2,cp3,cp4,cp5) 执行一些操作等
  • 看起来像作业..

标签: hadoop mapreduce


【解决方案1】:

你可以这样做:

  1. 像这样从每个映射生成输出:(使用任何键,但每行都相同)

    SOMEKEY P3 cp1

    SOMEKEY P6 cp2

    SOMEKEY P9 cp3

    ...

  2. 在reducer中你只会得到一个键:

    SOMEKEY (P3 cp1) (P6 cp2) (p9 cp3) ..

  3. 从 cp1、cp2、cp3 中构建列表。之后,它很容易以您想要的格式发出密钥

    p3 -> 列表(cp1,cp2,cp3,cp4,cp5)

    p6 -> 列表(cp1,cp2,cp3,cp4,cp5)

    ...

如果您也需要代码,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多