2017-01-01 24 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); 

ありがとう!

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

そしてそのappendメソッドを使用します。このようなSequenceFile.Writerの場合

答えて

0

使用Writer

Writer.append(param1, param2); 

私はthis linkがあなたを助けてくれることを願っています。

ここにリンクAllow appending to existing SequenceFilesがあります。問題は2.7.2で解決されました

+0

はいリンクで指定されたオプションも試しましたが、同じ問題があります。 – user3400887

+0

ねえ!私は私の答えに新しいリンクを追加しました。それを確認してください。 @ user3400887 –

+0

私はappendIfで試しましたが、同様の上書き問題があります。私は試みた別のオプションで質問を更新しました。 – user3400887

関連する問題