因此,我有一个MapReduce作业,它接收多篇新闻文章并输出以下键值对。将Hadoop MapReduce输出写入2个平面文件
.
.
.
<article_id, social_tag.name, social_tag.isCompany, social_tag.code>
<article_id2, social_tag2.name, social_tag2.isCompany, social_tag.code>
<article_id, topic_code.name, topic_code.isCompany, topic_code.rcsCode>
<article_id3, social_tag3.name, social_tag3.isCompany, social_tag.code>
<article_id2, topic_code2.name, topic_code2.isCompany, topic_code2.rcsCode>
.
.
.
正如你所看到的,主要有两种不同类型的我目前的输出而现在,这些获得通过的MapReduce输出的平面文件混在一起的数据行。无论如何,我可以简单地输出social_tags到file1和topic_codes到file2或者可以输出social_tags到指定的一组文件(social1.txt,social2.txt ..etc)和topic_codes到另一个组(topic1.txt,topic2.txt。 ..etc)
我问这个问题的原因是我可以很容易地将所有这些存储到Hive表中。我最好希望为每种不同的数据类型(topic_code,social_tag,...等)提供一个单独的表格。如果你们中的任何一个人都知道一个简单的方法来实现这一点,而不需要将mapreduce输出分离到不同的文件,那将是真正的也有帮助。
在此先感谢!
http://stackoverflow.com/questions/10436811/splitting-reducer-output-in-hadoop – DevZer0
您可以使用自定义'Partitioner' – twid