hadoop/mapreduce-矩阵乘法的实现代码下载
2012-06-27 09:53
756 查看
最近在研究hadoop与mapReduce,网上教程只有个wordcount程序示范,太简单,故写了个相对复杂点的涉及到多个文件之间同时运算的矩阵乘法的代码用于实验与测试,供大家学习与参考。
下载地址:
http://download.csdn.net/detail/statdm/4395736
调用方法:
执行:hadoop jar matrix.jar com.baosight.mapred.test.MatrixMulti left:/tmp/a right:/tmp/b output:/tmp/c leftprefix:000000_ rightprefix:000000_
>参数1:left:左矩阵路径
>参数2:right:右矩阵路径
>参数3:output:左矩阵乘右矩阵结果路径
>参数4:leftprefix:左矩阵文件前缀
如/tmp/a/000000_0,000000_1,000000_2……的000000_
>参数5:rightprefix:右矩阵文件前缀
>左右矩阵按列存储,每个文件只存放一列值,如2x2的单位矩阵, 000000_0存放1 0
000000_1存放
0 1
代码示范:
下载地址:
http://download.csdn.net/detail/statdm/4395736
调用方法:
执行:hadoop jar matrix.jar com.baosight.mapred.test.MatrixMulti left:/tmp/a right:/tmp/b output:/tmp/c leftprefix:000000_ rightprefix:000000_
>参数1:left:左矩阵路径
>参数2:right:右矩阵路径
>参数3:output:左矩阵乘右矩阵结果路径
>参数4:leftprefix:左矩阵文件前缀
如/tmp/a/000000_0,000000_1,000000_2……的000000_
>参数5:rightprefix:右矩阵文件前缀
>左右矩阵按列存储,每个文件只存放一列值,如2x2的单位矩阵, 000000_0存放1 0
000000_1存放
0 1
代码示范:
package com.baosight.mapred.test; import java.io.IOException; import java.util.ArrayList; import org.apache.hadoop.io.DoubleWritable; import org.apache.hadoop.mapred.MapReduceBase; import org.apache.hadoop.mapred.Mapper; import org.apache.hadoop.mapred.OutputCollector; import org.apache.hadoop.mapred.Reporter; public class MatrixMapper extends MapReduceBase implements Mapper<MapInputKey,MapInputValue,ReduceInputKey,DoubleWritable>{ @Override public void map(MapInputKey key, MapInputValue value, OutputCollector<ReduceInputKey, DoubleWritable> output, Reporter reporter) throws IOException { ArrayList<Double> leftElements = value.leftMatrixColumn; ArrayList<Double> rightElements = value.rightMatrixColumn; int leftColNum = key.leftColNum; int rightColNum = key.rightColNum; for(int i = 0; i < leftElements.size();i++){ Double leftVal = leftElements.get(i); Double rightVal = rightElements.get(leftColNum); ReduceInputKey tempKey = new ReduceInputKey(); tempKey.row = i; tempKey.col = rightColNum; // output.collect(tempKey, new DoubleWritable(leftVal.doubleValue()*rightVal.doubleValue())); output.collect(tempKey, new DoubleWritable(leftVal*rightVal)); } } }
相关文章推荐
- 算法导论,动态规划 —— 矩阵链乘法(python代码实现示例)
- hadoop实现稀疏矩阵乘法
- 【甘道夫】MapReduce实现矩阵乘法--实现代码
- 电话号码上传下载流量的hadoop代码简单实现
- 基于矩阵分解推荐算法之交替最小二乘法(ALS)--附实现代码
- 矩阵乘法在hadoop的实现
- 转置矩阵的分块并行乘法(C语言实现),计算矩阵C[rawn][rawn]=A[rawm][rawn]'*B[rawm][rawn],子块大小为S*T,其算法实现原理参加本代码的附件。
- Hadoop MapReduce实现矩阵的乘法
- 最小二乘法的一般形式和矩阵形式原理推导和代码实现
- MapReduce实现大矩阵乘法及代码实现
- 最小二乘法的一般形式和矩阵形式原理推导和代码实现
- Hadoop的安装、测试、以及为伪分布式下矩阵乘法的实现
- 基于内积法的Hadoop的MapReducer框架实现稀疏矩阵乘法(java)
- 【甘道夫】MapReduce实现矩阵乘法--实现代码
- MapReduce实现大矩阵乘法及代码实现
- 用Java的循环实现矩阵乘法代码
- 线性代数教程之一——矩阵乘法计算、理解及代码实现
- hadoop实现矩阵的乘法(根据张丹的矩阵乘法改编)
- dom4j读写xml文件方法和具体实现代码(提供jar包下载)
- Hadoop入门(10)_通过java代码实现从本地的文件上传到Hadoop的文件系统