真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java矩陣乘法的mapreduce程序?qū)崿F(xiàn)

java 矩陣乘法的mapreduce程序?qū)崿F(xiàn)

成都創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站設計、成都網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元大方做網(wǎng)站,已為上家服務,為大方各地企業(yè)和個人服務,聯(lián)系電話:13518219792

map函數(shù):對于矩陣M中的每個元素m(ij),產(chǎn)生一系列的key-value對<(i,k),(M,j,m(ij))>

其中k=1,2.....知道矩陣N的總列數(shù);對于矩陣N中的每個元素n(jk),產(chǎn)生一系列的key-value對<(i , k) , (N , j ,n(jk)>, 其中i=1,2.......直到i=1,2.......直到矩陣M的總列數(shù)。

map

package com.cb.matrix;

import static org.mockito.Matchers.intThat;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileSplit;
import org.apache.hadoop.mapreduce.Mapper;

import com.sun.org.apache.bcel.internal.generic.NEW;


public class MatrixMapper extends Mapper {
 private Text map_key=new Text();
 private Text map_value= new Text();
 private int columnN;
 private int rowM;
 /**
 * 執(zhí)行map()函數(shù)前先由conf.get()得到main函數(shù)中提供的必要變量
 * 也就是從輸入文件名中得到的矩陣維度信息
 */
 
 @Override
 protected void setup(Mapper.Context context) throws IOException, InterruptedException {
 // TODO Auto-generated method stub
 Configuration config=context.getConfiguration();
 columnN=Integer.parseInt(config.get("columnN"));
 rowM =Integer.parseInt(config.get("rowM"));
 }
 
 @Override
 protected void map(Object key, Text value, Mapper.Context context)
  throws IOException, InterruptedException {
 // TODO Auto-generated method stub
 //得到文件名,從而區(qū)分輸入矩陣M和N
 FileSplit fileSplit=(FileSplit)context.getInputSplit();
 String fileName=fileSplit.getPath().getName();
 
 if (fileName.contains("M")) {
  String[] tuple =value.toString().split(",");
  int i =Integer.parseInt(tuple[0]);
  String[] tuples=tuple[1].split("\t");
  int j=Integer.parseInt(tuples[0]);
  int Mij=Integer.parseInt(tuples[1]);
  for(int k=1;k

reduce函數(shù):對于每個鍵(i,k)相關聯(lián)的值(M,j,m(ij))及(N,j,n(jk)),根據(jù)相同的j值將m(ij)和n(jk)分別存入不同的數(shù)組中,然后將倆者的第j個元素抽取出來分別相乘,最后相加,即可得到p(jk)的值。

reducer

package com.cb.matrix;


import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;



public class MatrixReducer extends Reducer {
 private int sum=0;
 private int columnM;
 @Override
 protected void setup(Reducer.Context context) throws IOException, InterruptedException {
 // TODO Auto-generated method stub
 Configuration conf =context.getConfiguration();
 columnM=Integer.parseInt(conf.get("columnM"));
 }
 @Override
 protected void reduce(Text arg0, Iterable arg1, Reducer.Context arg2)
  throws IOException, InterruptedException {
 // TODO Auto-generated method stub
 int[] M=new int[columnM+1];
 int[] N=new int[columnM+1];
 
 for(Text val:arg1){
  String[] tuple=val.toString().split(",");
  if(tuple[0].equals("M")){
  M[Integer.parseInt(tuple[1])]=Integer.parseInt(tuple[2]);
  
  }else{
  N[Integer.parseInt(tuple[1])]=Integer.parseInt(tuple[2]);
  }
  for(int j=1;j

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


當前名稱:java矩陣乘法的mapreduce程序?qū)崿F(xiàn)
瀏覽路徑:http://weahome.cn/article/pehccs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部