簡単な wordcount プログラムを実行していますが、次のエラーが表示されます。
Type mismatch in key from map: expected org.apache.hadoop.io.Text, received org.apache.hadoop.io.LongWritable
これはどういう意味ですか、どうすれば修正できますか??
メイン関数では、次の行のいずれかを使用できます。
conf.setMapOutputKeyClass(Text.class);
conf.setMapOutputValueClass(IntWritable.class);
JobConf conf を使用していると仮定します。
また
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
Job job = new Job(); を使用していると仮定します。
キーとしてを持つシーケンス ファイルの入力を与えていますがLongWritable
、予想されるシーケンス ファイルはキーを として持つ必要がありますText
。
これは、入力フォーマット クラスとして TextInputFormat を使用している場合に発生する可能性があります。これは、LongWritable 型のキーと Text 型の値を生成します。しかし、アプリケーションは、Text 型のキーを想定している可能性があります。 「job.setMapOutputKeyClass(Text.class)」を使用するとうまくいきます。