hadoopの新機能-HDFSファイルをチャンクで読み込もうとしています。たとえば、一度に100行ずつ、マッパーでapacheOLSMultipleLinearRegressionを使用してデータで回帰を実行しています。私はここに示されているこのコードを使用して複数の行を読んでいます:http://bigdatacircus.com/2012/08/01/wordcount-with-custom-record-reader-of-textinputformat/
私のマッパーは次のように定義されています。
public void map(LongWritable key, Text value,Context context) throws java.io.IOException ,InterruptedException
{
String lines = value.toString();
String []lineArr = lines.split("\n");
int lcount = lineArr.length;
System.out.println(lcount); // prints out "1"
context.write(new Text(new Integer(lcount).toString()),new IntWritable(1));
}
私の質問は、system.out.printlnからlcount == 1になるのはなぜですか?ファイルは「\n」で区切られ、レコードリーダーでNLINESTOPROCESS=3に設定しました。私の入力ファイルは次のようにフォーマットされています:
y x1 x2 x3 x4 x5
y x1 x2 x3 x4 x5
y x1 x2 x3 x4 x5
...
回帰APIは複数のデータポイントを取り込むため、一度に1行しか読み取っていない場合、重回帰を実行できません...助けてくれてありがとう