阅读背景:

向MapReduce转换:计算共现关系

来源:互联网 

分两部份:

<strong><span>/***
 * @author YangXin
 * @info 盘算共现关系的Mapper
 */
package unitSix;

import java.io.IOException;
import java.util.Iterator;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.mahout.math.VarLongWritable;
import org.apache.mahout.math.Vector;
import org.apache.mahout.math.VectorWritable;

public class UserVectorToCooccurrenceMapper extends Mapper<VarLongWritable, VectorWritable, IntWritable, IntWritable>{
	public void map(VarLongWritable userID, VectorWritable userVector, Context context) throws IOException, InterruptedException{
		Iterator<Vector.Element> it = userVector.get().nonZeroes().iterator();
		//两重重复遍历非零元素
		while(it.hasNext()){
			int index1 = it.next().index();
			Iterator<Vector.Element> it2 = userVector.get().nonZeroes().iterator();
			while(it2.hasNext()){
				int index2 = it2.next().index();
				//写入项目ID
				context.write(new IntWritable(index1), new IntWritable(index2));
			}
		}
	}
}</span></strong><strong><span>/***
 * @author YangXin
 * @




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: