有没有可能使用Hadoop的MapReduce,根据预先确定的键将键值对写入不同的文件

eulz3vhy  于 2023-06-05  发布在  Hadoop
关注(0)|答案(1)|浏览(204)

我想根据不同文件中的预定键值将此Hadoop作业产生的键/值对分离到不同的文件中。
例如,在Startup(X)文件中有键值。如果在文件A中有匹配项,我想把它们写到一个文件,如果在文件B中有匹配项,我想把它们写到另一个文件。文件数未知(A、B、C...)。如何编写这个mapreduce编程模型?
| X型|一个|B|
| - -----|- -----|- -----|
| 艾比,四岁|艾比|阿德里亚娜|
| Adriana,2岁|安娜|布莱克|
| 安娜,2岁|克里斯蒂娜|卡罗莱纳|
| Blake,1|||
| 卡罗莱纳卡罗莱纳州1|||
| 克里斯蒂娜,1|||
| A_new| B_new|
| - -----|- -----|
| 艾比,四岁|Adriana,2岁|
| 安娜,2岁|Blake,1|
| 克里斯蒂娜,1|卡罗莱纳卡罗莱纳州1|

7dl7o3gd

7dl7o3gd1#

您可以使用MultipleOutputs将内容写入不同的文件。

MultipleOutputs.addNamedOutput(job, "fileA", TextOutputFormat.class, Text.class, Text.class);
MultipleOutputs.addNamedOutput(job, "fileB", TextOutputFormat.class, Text.class, Text.class);

相关问题