List of usage examples for org.apache.mahout.cf.taste.hadoop.item UserVectorSplitterMapper MAX_PREFS_PER_USER_CONSIDERED
String MAX_PREFS_PER_USER_CONSIDERED
To view the source code for org.apache.mahout.cf.taste.hadoop.item UserVectorSplitterMapper MAX_PREFS_PER_USER_CONSIDERED.
Click Source Link
From source file:hadoop.api.RecommenderJob.java
License:Apache License
/** * Calculate the multiplication of the co-occurrence matrix by the user vectors * * @param args Information about the input pathpartialMultiply, similarityClassname, maxObservationsPerRow * @return 0//from w w w . ja va 2s. c o m */ public int multiplication(String[] args, String path1, String path2) { try { prepareRecommender(args); } catch (IOException e) { e.printStackTrace(); } Path similarityMatrixPath = new Path(path1); Path partialMultiplyPath = new Path(prepPath, "partialMultiply"); int maxPrefsPerUser = Integer.parseInt(getOption("maxPrefsPerUser")); String usersFile = getOption("usersFile"); if (shouldRunNextPhase(parsedArgs, currentPhase)) { Job partialMultiply = null; try { partialMultiply = new Job(getConf(), "partialMultiply"); } catch (IOException e) { e.printStackTrace(); } Configuration partialMultiplyConf = partialMultiply.getConfiguration(); MultipleInputs.addInputPath(partialMultiply, similarityMatrixPath, SequenceFileInputFormat.class, SimilarityMatrixRowWrapperMapper.class); MultipleInputs.addInputPath(partialMultiply, new Path(path2), SequenceFileInputFormat.class, UserVectorSplitterMapper.class); partialMultiply.setJarByClass(org.apache.mahout.cf.taste.hadoop.item.ToVectorAndPrefReducer.class); partialMultiply.setMapOutputKeyClass(VarIntWritable.class); partialMultiply.setMapOutputValueClass(VectorOrPrefWritable.class); partialMultiply.setReducerClass(ToVectorAndPrefReducer.class); partialMultiply.setOutputFormatClass(SequenceFileOutputFormat.class); partialMultiply.setOutputKeyClass(VarIntWritable.class); partialMultiply.setOutputValueClass(VectorAndPrefsWritable.class); partialMultiplyConf.setBoolean("mapred.compress.map.output", true); partialMultiplyConf.set("mapred.output.dir", partialMultiplyPath.toString()); if (usersFile != null) { partialMultiplyConf.set(UserVectorSplitterMapper.USERS_FILE, usersFile); } partialMultiplyConf.setInt(UserVectorSplitterMapper.MAX_PREFS_PER_USER_CONSIDERED, maxPrefsPerUser); boolean succeeded = false; try { succeeded = partialMultiply.waitForCompletion(true); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } if (!succeeded) { return -1; } } return 0; }