public static void main(String[] args) throws Exception { ToolRunner.run(new RecommenderJob(), args); }
addInputOption(); addOption("userFeatures", null, "path to the user feature matrix", true); addOption("itemFeatures", null, "path to the item feature matrix", true); addOption("numRecommendations", null, "number of recommendations per user", String.valueOf(DEFAULT_NUM_RECOMMENDATIONS)); addOption("maxRating", null, "maximum rating available", true); addOption("numThreads", null, "threads per mapper", String.valueOf(1)); addOption("usesLongIDs", null, "input contains long IDs that need to be translated"); addOption("userIDIndex", null, "index for user long IDs (necessary if usesLongIDs is true)"); addOption("itemIDIndex", null, "index for user long IDs (necessary if usesLongIDs is true)"); addOutputOption(); Map<String,List<String>> parsedArgs = parseArguments(args); if (parsedArgs == null) { return -1; Job prediction = prepareJob(getInputPath(), getOutputPath(), SequenceFileInputFormat.class, MultithreadedSharingMapper.class, IntWritable.class, RecommendedItemsWritable.class, TextOutputFormat.class); Configuration conf = prediction.getConfiguration(); int numThreads = Integer.parseInt(getOption("numThreads")); conf.setInt(NUM_RECOMMENDATIONS, Integer.parseInt(getOption("numRecommendations"))); conf.set(USER_FEATURES_PATH, getOption("userFeatures")); conf.set(ITEM_FEATURES_PATH, getOption("itemFeatures")); conf.set(MAX_RATING, getOption("maxRating")); boolean usesLongIDs = Boolean.parseBoolean(getOption("usesLongIDs")); if (usesLongIDs) {
addInputOption(); addOption("userFeatures", null, "path to the user feature matrix", true); addOption("itemFeatures", null, "path to the item feature matrix", true); addOption("numRecommendations", null, "number of recommendations per user", String.valueOf(DEFAULT_NUM_RECOMMENDATIONS)); addOption("maxRating", null, "maximum rating available", true); addOption("numThreads", null, "threads per mapper", String.valueOf(1)); addOption("usesLongIDs", null, "input contains long IDs that need to be translated"); addOption("userIDIndex", null, "index for user long IDs (necessary if usesLongIDs is true)"); addOption("itemIDIndex", null, "index for user long IDs (necessary if usesLongIDs is true)"); addOutputOption(); Map<String,List<String>> parsedArgs = parseArguments(args); if (parsedArgs == null) { return -1; Job prediction = prepareJob(getInputPath(), getOutputPath(), SequenceFileInputFormat.class, MultithreadedSharingMapper.class, IntWritable.class, RecommendedItemsWritable.class, TextOutputFormat.class); Configuration conf = prediction.getConfiguration(); int numThreads = Integer.parseInt(getOption("numThreads")); conf.setInt(NUM_RECOMMENDATIONS, Integer.parseInt(getOption("numRecommendations"))); conf.set(USER_FEATURES_PATH, getOption("userFeatures")); conf.set(ITEM_FEATURES_PATH, getOption("itemFeatures")); conf.set(MAX_RATING, getOption("maxRating")); boolean usesLongIDs = Boolean.parseBoolean(getOption("usesLongIDs")); if (usesLongIDs) {
addInputOption(); addOption("userFeatures", null, "path to the user feature matrix", true); addOption("itemFeatures", null, "path to the item feature matrix", true); addOption("numRecommendations", null, "number of recommendations per user", String.valueOf(DEFAULT_NUM_RECOMMENDATIONS)); addOption("maxRating", null, "maximum rating available", true); addOption("numThreads", null, "threads per mapper", String.valueOf(1)); addOption("usesLongIDs", null, "input contains long IDs that need to be translated"); addOption("userIDIndex", null, "index for user long IDs (necessary if usesLongIDs is true)"); addOption("itemIDIndex", null, "index for user long IDs (necessary if usesLongIDs is true)"); addOutputOption(); Map<String,List<String>> parsedArgs = parseArguments(args); if (parsedArgs == null) { return -1; Job prediction = prepareJob(getInputPath(), getOutputPath(), SequenceFileInputFormat.class, MultithreadedSharingMapper.class, IntWritable.class, RecommendedItemsWritable.class, TextOutputFormat.class); Configuration conf = prediction.getConfiguration(); int numThreads = Integer.parseInt(getOption("numThreads")); conf.setInt(NUM_RECOMMENDATIONS, Integer.parseInt(getOption("numRecommendations"))); conf.set(USER_FEATURES_PATH, getOption("userFeatures")); conf.set(ITEM_FEATURES_PATH, getOption("itemFeatures")); conf.set(MAX_RATING, getOption("maxRating")); boolean usesLongIDs = Boolean.parseBoolean(getOption("usesLongIDs")); if (usesLongIDs) {
public static void main(String[] args) throws Exception { ToolRunner.run(new RecommenderJob(), args); }
public static void main(String[] args) throws Exception { ToolRunner.run(new RecommenderJob(), args); }
RecommenderJob recommender = new RecommenderJob();