2016-03-04 66 views
0

我有一个MapReduce工作读取文本文件,并从它创建拼花文件,并在同一时间写简单的文本文件作为输出。我已经使用了多种输出格式。但是可以初始化多个输出格式对象,以便一次写入实木复合地板文件或文本文件。我需要在单个映射器中兼容。任何帮助,高度赞赏。多outputformats减少

回答

0

不知道这是最好的方式,但你可以初始化我们的映射器的方法setup()一个StringBuilder,在map()方法中添加的所有文字值,然后将其在cleanup方法写入磁盘。取决于文本输出的大小,以及是否有足够的内存。这样,文本文件根本不需要是映射器输出,而您的映射器输出只能是Parquet数据。

您可以使用context.getInputSplit()或类似的文本输出文件名,以便每个映射器输出一个唯一的文件名,并知道哪个输出与哪个输入相关。