2017-01-01 104 views
0

我正在使用下面的代碼片段序列文件編寫器,但它工作正常,如果序列文件不存在,但它會覆蓋內容而不是附加到它。追加到現有序列文件正在覆蓋內容

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); 

先謝謝了!

回答

0

使用Writer在SequenceFile.Writer的情況是這樣的:

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

然後使用它的append方法。

Writer.append(param1, param2); 

我希望this link可以幫助你。

這是鏈接Allow appending to existing SequenceFiles。這個問題已經在2.7.2解決了

+0

是的,我嘗試了鏈接中給出的選項,但仍然存在相同的問題。 – user3400887

+0

嘿!我添加了一個新的鏈接到我的答案。覈實。 @ user3400887 –

+0

我試着用appendIf存在一個,但同樣的覆蓋問題。我用我試過的另一個選項更新了這個問題。 – user3400887