複数のマッピングを行うデータセットがあります。
reduce 関数に 3 つのキーと値のペアがあると仮定すると、キーと値のペアごとに 1 つずつ、3 つの BLOB ファイルがあるように出力を変更するにはどうすればよいですか?
さらに明確にすることができるかどうか教えてください。
複数のマッピングを行うデータセットがあります。
reduce 関数に 3 つのキーと値のペアがあると仮定すると、キーと値のペアごとに 1 つずつ、3 つの BLOB ファイルがあるように出力を変更するにはどうすればよいですか?
さらに明確にすることができるかどうか教えてください。
そのような機能は GAE Mapreduce ライブラリには (まだ?) 存在しないと思います。
データセットのサイズと必要な出力の種類に応じて、リデューサーを別の出力ライターとして採用することで、短時間の投資でそれを回避できます。たとえば、レデューサーの出力の 1 つがデータストアに直接返され、別の出力がファイルに送られる場合、自分でファイルを開いて出力を書き込むことができます。あるいは、 を使用して中間マップの結果をシリアライズし、一時データストアに明示的に保存し、operation.db.Put
そのデータストアで個別の Map ジョブまたは Reduce ジョブを実行することもできます。もちろん、それは最初の回避策よりもコストが高くなります。
特定のキー値の例では、Google Cloud Storage ファイルに書き込み、後処理して必要に応じて 3 つのファイルに分割することをお勧めします。これにより、最終的なファイル名をより細かく制御できます。