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

day*_*mer 5 python hadoop mapreduce hadoop-streaming

我阅读了Hadoop in Action,发现在Java使用MultipleOutputFormatMultipleOutputs类中我们可以将数据减少到多个文件,但我不确定如何使用相同的东西Python streaming.

例如:

                  / out1/part-0000
mapper -> reducer   
                  \ out2/part-0000
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*erg 2

Dumbo Feathers是一组与Dumbo(一个 Python 库,可以轻松为 hadoop 编写高效的 Python M/R 程序)一起使用的 java 类,在其输出类中执行此操作。

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

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