mapreduce想用map函数提取几十g文件包含某关键字的行,输出

用默认的textinputformat,但是每次都报错string index out of range 5。
string line = value.tostring();
line.substring(0,1);

请问是什么原因?

光看这两行貌似看不出错在哪里

line有可能是空字符串。就会导致后面substring出错

从错误来看应该是你后面访问字符串时越界了啊,具体代码贴一下?
最好做下校验吧

你可以在前面加上判断if(line.length>1)在执行line.substring(0,1);

string line = value.tostring();这个之后对line做一次校验,
if(line!=null&&line.length>你截取的最大长度)
因为数据不是你想的那么标准,可能有些脏数据,过滤掉就好了