Python Streaming:如何减少到多个输出?(尽管有Java可能)

时间:2011-09-29 15:58:12

标签: python hadoop mapreduce hadoop-streaming

我看了Hadoop in Action并发现在Java使用MultipleOutputFormatMultipleOutputs类我们可以将数据减少到多个文件,但我不确定如何实现使用Python streaming同样的事情。

例如:

                  / out1/part-0000
mapper -> reducer   
                  \ out2/part-0000

如果有人知道,听到,做过类似的事情,请告诉我

1 个答案:

答案 0 :(得分:2)

Dumbo Feathers,一组与Dumbo一起使用的java类(一个python库,可以很容易地为hadoop编写高效的python M / R程序),在{{{}} { 3}}。

基本上,在python dumbo M / R作业中,输出一个由两个元素组成的键 - 第一个元素是要输出到的目录的名称,第二个元素是实际键。您选择的输出类然后检查元组以查找要使用的输出目录,并使用MultipleOutputFormat写入不同的子目录。

使用dumbo,由于使用了typedbytes作为输出格式,这很容易,但我认为即使你有其他输出格式也应该可行。