Reducer通过sys.stdin获取多个密钥?

时间:2013-04-08 14:17:43

标签: python hadoop hadoop-streaming

我知道与Key关联的所有值都会发送到单个Reducer。是这样的情况下,Reducer可以通过它的标准输入一次获得多个键吗?

我的用例是我将行拆分为键值对,然后我想将与键相关联的所有行发送到API。我看到多个密钥会立即发送到API中。

以下是我的作业正在运行的一些示例代码

映射

def main():
    for line in sys.stdin
        part1 = get_part1(line)
        part2 = get_part2(line)
        key = '%s - %s' % (part1, part2)
        print '%s\t%s' % (key, line)

减速

def main():
    my_module.sent_to_api(sys.stdin)

1 个答案:

答案 0 :(得分:2)

虽然与单个键关联的所有值都被发送到单个reducer,但该reducer可能不仅仅是那个键,因此每个输出文件中都出现了多个键。