第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Hadoop 失敗錯(cuò)誤:java.lang.ArrayIndexOutOfBounds

Hadoop 失敗錯(cuò)誤:java.lang.ArrayIndexOutOfBounds

躍然一笑 2023-01-05 16:53:25
我正在使用 Hadoop MapReduce 計(jì)算每年的最小值和最大值,但是當(dāng)我運(yùn)行該程序時(shí),出現(xiàn)錯(cuò)誤:FAILED Error: java.lang.ArrayIndexOutOfBoundsException: 5我認(rèn)為這是因?yàn)槲业臄?shù)據(jù)中有空值,因?yàn)楫?dāng)沒有空值時(shí)程序運(yùn)行正常。因此,在我的 map 函數(shù)中,我寫了 if 語句來檢查是否有 header 以及是否有 null 值: public static class ExposureMapper        extends Mapper<Object, Text, Text, MinMaxExposure> {    private Text year = new Text();    private double minexposure;    private Double maxexposure;    private MinMaxExposure outPut = new MinMaxExposure();    public void map(Object key, Text value, Context context    ) throws IOException, InterruptedException {        try {            //Some condition satisfying it is header            if (value.toString().contains("Product")) {                return;            } else if(value.toString()==null) {               return;            }            else{            }        } catch (Exception e) {            e.printStackTrace();        }        String[] solarFields = value.toString().split(",");        year.set(solarFields[2]);        minexposure = Double.parseDouble(solarFields[5]);        maxexposure = Double.parseDouble(solarFields[5]);        try {            outPut.setMinExposure(minexposure);            outPut.setMaxExposure(maxexposure);            context.write(year, outPut);        } catch (IOException e) {            e.printStackTrace();        }    }但是同樣的錯(cuò)誤發(fā)生了......是不是因?yàn)関alue.toString()==null檢查空值的方法不正確?
查看完整描述

1 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果value.toString().split(",");has 少于六個(gè)元素,solarFields[5]則不會(huì)是一個(gè)元素,因此您會(huì)看到一個(gè)ArrayIndexOutOfBoundsException.


創(chuàng)建后solarFields你應(yīng)該立即檢查它的長度:


if (solarFields == null || solarFields.length < 6) {

    return;

}

您還想確保Double.parseDouble(solarFields[5]);不會(huì)拋出NumberFormatException:


Double exposure;

try {

    exposure = Double.parseDouble(solarFields[5]);

} catch (NumberFormatException e) {

    return;

}


查看完整回答
反對(duì) 回復(fù) 2023-01-05
  • 1 回答
  • 0 關(guān)注
  • 368 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)