我看了Hadoop in Action并发现在Java
使用MultipleOutputFormat
和MultipleOutputs
类我们可以将数据减少到多个文件,但我不确定如何实现使用Python streaming
同样的事情。
例如:
/ out1/part-0000
mapper -> reducer
\ out2/part-0000
如果有人知道,听到,做过类似的事情,请告诉我
答案 0 :(得分:2)
Dumbo Feathers,一组与Dumbo一起使用的java类(一个python库,可以很容易地为hadoop编写高效的python M / R程序),在{{{}} { 3}}。
基本上,在python dumbo M / R作业中,输出一个由两个元素组成的键 - 第一个元素是要输出到的目录的名称,第二个元素是实际键。您选择的输出类然后检查元组以查找要使用的输出目录,并使用MultipleOutputFormat写入不同的子目录。
使用dumbo,由于使用了typedbytes作为输出格式,这很容易,但我认为即使你有其他输出格式也应该可行。