91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mapreduce程序中reduce的Iterable參數問題怎么解決

發布時間:2021-12-30 13:58:36 來源:億速云 閱讀:163 作者:iii 欄目:云計算

這篇文章主要講解了“Mapreduce程序中reduce的Iterable參數問題怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Mapreduce程序中reduce的Iterable參數問題怎么解決”吧!

今天在對reduce的參數Iterable進行迭代時,發現一個問題,即Iterator的next()方法每次返回的是同一個對象,next()只是修改了Writable對象的值,而不是重新返回一個新的Writable對象。

使用wordcount來驗證:

我的代碼如下:

protected void reduce(Text key, Iterable<IntWritable> values,
        Reducer<Text, IntWritable, Text, IntWritable>.Context context)
        throws IOException, InterruptedException {
    int sum = 0;

    // 保存每個IntWritable到list
    List<IntWritable> intWritables = new ArrayList<IntWritable>();

    for (IntWritable val : values) {
        intWritables.add(val);
        sum += val.get();
    }

    if(intWritables.size() > 1) {
        // 當list size大于1時,驗證第一個元素和第二個元素是否是同一個對象
        System.out.println("objects is same -> "
                + (intWritables.get(0) == intWritables.get(1)));
    }

    result.set(sum);
    context.write(key, result);
}

日志輸出:

objects is same -> true

這個Iterable的實現是org.apache.hadoop.mapreduce.task.ReduceContextImpl.ValueIterable

Iterator實現是org.apache.hadoop.mapreduce.task.ReduceContextImpl.ValueIterator

其中next()實現時,調用的是org.apache.hadoop.io.serializer.WritableSerialization的deserialize(Writable w)方法,

Writable deserialize(Writable w) IOException {
  Writable writable;
  (w == ) {
    writable 
      = (Writable) ReflectionUtils.(, getConf());
  } {
    writable = w;
  }
  writable.readFields();
  writable;
}

該方法只是調用了入參w的readFields方法,并沒有創建新對象,除非w是null

感謝各位的閱讀,以上就是“Mapreduce程序中reduce的Iterable參數問題怎么解決”的內容了,經過本文的學習后,相信大家對Mapreduce程序中reduce的Iterable參數問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵寿县| 丹阳市| 酉阳| 临潭县| 林周县| 红原县| 茂名市| 会同县| 林口县| 文化| 浙江省| 丰台区| 钟山县| 丰县| 英德市| 乌拉特前旗| 兴业县| 昌平区| 霍邱县| 广南县| 紫阳县| 柏乡县| 浮梁县| 凤凰县| 陆河县| 武定县| 东兴市| 远安县| 梧州市| 合山市| 平舆县| 柘城县| 修水县| 华阴市| 济阳县| 洛扎县| 乐平市| 蓬溪县| 嫩江县| 灵山县| 维西|