附加到现有序列文件将覆盖内容

时间:2017-01-01 10:00:17

标签: java hadoop sequencefile

我在下面的代码片段中使用了序列文件编写器,但是如果序列文件不存在则它可以正常工作但它会覆盖内容而不是附加到它。

SequenceFile.Writer writer = SequenceFile.createWriter(FileContext.getFileContext(conf), conf, sequenceFile, Text.class, Text.class, CompressionType.NONE, null, new Metadata(), EnumSet.of(CreateFlag.CREATE, CreateFlag.APPEND));

请注意:我使用的是hadoop 2.7.2。

任何人都可以帮助我如何附加到现有的序列文件?

我也试过以下选项,但没有运气:

Writer writer = SequenceFile.createWriter(conf, SequenceFile.Writer.file(sequenceFile), SequenceFile.Writer.keyClass(Text.class), SequenceFile.Writer.valueClass(Text.class), SequenceFile.Writer.appendIfExists(true), metadataOption);

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果是SequenceFile.Writer,请使用Writer

Writer writer = SequenceFile.createWriter(//required params);

然后使用它的追加方法。

Writer.append(param1, param2);

我希望this link可以帮助你。

这是链接Allow appending to existing SequenceFiles。这个问题已经在2.7.2中解决了