我试图运行排序算法使用mapreduce,但我总是收到数组的边界
例外
java.lang.ArrayIndexOutOfBoundsException: 6
at to.SecSortMapper.map(SecSortMapper.java:17)
at to.SecSortMapper.map(SecSortMapper.java:1)
代码
if (value.toString().length() > 0) {
String arrEmpAttributes[] = value.toString().split("\\t");
context.write(new TextPair(arrEmpAttributes[6].toString(),
(arrEmpAttributes[3].toString() + "\t" + arrEmpAttributes[2].toString() + "\t" + arrEmpAttributes[0].toString())), nullWritable.get());
}
第17行是新的文本对(……………)
我试图改变值字符串长度>1,但它不工作,有人能帮忙吗?
1条答案
按热度按时间0ejtzxu11#
你在假设
arrEmpAttributes
至少包含7个元素,其中没有一个是null
. 这是一个冒险的假设,尤其是在大数据世界中,你几乎可以保证要处理输入数据中的一些不一致。你的
if
语句应如下所示: