次の形式の行を含むファイルを読み込もうとしています。
100,1:2:3 200,10:20:30
入力が常に数値であると仮定して、入力キーと値をそれぞれ と に設定してファイルを読み取ろうとしていIntWritable
ますText
。しかし、実行すると、次のエラーが表示されます。
java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.io.IntWritable
今、それが何を意味するかは理解していますが、キーを整数として読み取る方法を理解できません。キーも読み取ると、コードは正常に実行Text
されます。構成を見逃していないかどうか、コードのあらゆる場所をチェックしましたが、問題ないようです。
conf.set("mapred.textoutputformat.separator", "|");
conf.setInputFormatClass(KeyValueTextInputFormat.class);
conf.setOutputFormatClass(TextOutputFormat.class);
conf.setOutputKeyClass(IntWritable.class);
conf.setOutputValueClass(Text.class);
マッパークラスとメソッドも確認しました(リデューサーはありません)。KeyValueTextInputFormat
キーをテキストのみとして読み取ることができるということですか? 私は自分が間違っていることを理解できません。どんな助けでも大歓迎です。
ありがとう、
EG