0
我想編寫自己的RecordReader,它返回上下文作爲整個段落而不是TextInputFormat中的行。將RecordReader上下文設置爲Hadoop中的段落MapReduce
我嘗試了以下功能,但肯定其路斷
public boolean nextKeyValue() throws IOException, InterruptedException {
if (key == null) {
key = new LongWritable();
}
key.set(pos);
if (value == null) {
value = new Text();
}
value.clear();
final Text endline = new Text("\n");
int newSize = 0;
Text v = new Text();
while (v!= endline) {
value.append(v.getBytes(),0, v.getLength());
value.append(endline.getBytes(),0, endline.getLength());
if (newSize == 0) {
break;
}
pos += newSize;
if (newSize < maxLineLength) {
break;
}
}
if (newSize == 0) {
key = null;
value = null;
return false;
} else {
return true;
}
}
你是什麼意思的「路過」?你有什麼問題? – 2013-03-24 00:20:13
您還需要找到一種方法來定義段落邊界 - 它們是空行分隔的還是縮進的新段落的第一句(tab或whitespace)? – 2013-03-24 13:40:38