Below is the code for user recommendations using mahout.
DataModel dm = new FileDataModel(new File(inputFile));
UserSimilarity sim = new LogLikelihoodSimilarity(dm);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(100, sim,
dm);
GenericUserBasedRecommender recommender = new GenericUserBasedRecommender(
dm, neighborhood, sim);
After the recommendations are generated, I am trying to write it to a file like this:
FileWriter writer = new FileWriter(outputFile);
for (LongPrimitiveIterator userIterator = dm.getItemIDs(); userIterator.hasNext();) {
long user = (long) userIterator.next();
List<RecommendedItem> recs = recommender.recommend(user, numOfRec );
for (RecommendedItem item : recs) {
writer.write(user + "," + item.getItemID() + ","
+ item.getValue()+"\n");
}
}
writer.close();
This code to write to file is taking lot of time. How can I speed up the write operations?
I tried with BufferedWriter
, but was unable to gain speed-up.
recommend
that is taking that long? \$\endgroup\$