gpt4 book ai didi

hadoop - 映射代码中的 ArrayIndexOutOfBoundException

转载 作者:可可西里 更新时间:2023-11-01 15:26:35 25 4
gpt4 key购买 nike

输入是 1000:rohit:male:dev:2500

在此我想数一数男性和女性的数量。当我使用 split 时,将每个性别字段分配给 reducer 显示 ArrayIndexOutOfBounfException:2

public class DeptEmpcountMapper extends
Mapper<LongWritable, Text, Text, LongWritable> {

@Override
protected void map(LongWritable key, Text value, Context context)

throws IOException, InterruptedException {

String st = value.toString();

String[] field = st.split(":");
String st1 = field[2];

context.write(new Text(st1), new LongWritable(1));
}

}

最佳答案

您正在做出危险的假设,即每条输入记录都采用 1000:rohit:male:dev:2500 形式。从你的错误来看,很明显情况并非如此。坏数据总是需要考虑的问题。

事先考虑一些简单的输入验证:

String[] field = st.split(":");
if(ArrayUtils.getLength(field) == 5) {
String st1 = field[2];
context.write(new Text(st1), new LongWritable(1));
} else {
//Consider printing "st" to see what the bad input looks like
}

关于hadoop - 映射代码中的 ArrayIndexOutOfBoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45396906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com