Fork me on GitHub

Hadoop Reducerのiterator

  • May 29, 2008

categoryプラグインは存在しません。

環境

Iteratorから取得できるオブジェクト

Reducerのreduceメソッドには、

public void reduce(KeyWritable key,
Iterator<ValueWritable> it,
OutputCollector<KeyWritable, ValueWritable> output,
Reporter report) throws IOException \{

のような感じで、valueのiteratorが渡されるが、

it.next()

で順次取れるオブジェクトは、基本的に同じオブジェクトが使いまわされている。

なので、

ValueWritable first = it.next();
ValueWritable second = it.next();

としても、first == second (オブジェクトとして同じ) であることに注意。