package com.mongodb.mahout; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.Date; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.Mongo; public class MongoImporter { /** * @param args */ public static void main(String[] args) { try { long time1 = new Date().getTime(); BufferedReader br = new BufferedReader( new FileReader( new File( "C:\\Project\\Recommender\\ml-10M100K\\movies.dat" ) )); Mongo mongo = new Mongo("localhost"); DB db = mongo.getDB("movieLens"); DBCollection collection = db.getCollection("movies"); String s = br.readLine(); int i=0; while( s != null ) { String[] sArr = s.split("::"); int movie_id = Integer.parseInt( sArr[0] ); String name = sArr[1]; String title = name.substring(0, name.lastIndexOf("(")-1); int yearOfRel = Integer.parseInt( name.substring( name.lastIndexOf("(") + 1, name.length()-1)); String[] genres = sArr[2].split("\\|"); BasicDBObject object = new BasicDBObject(); object.put("_id", movie_id); object.put("title", title); object.put("year_of_release", yearOfRel); BasicDBList list = new BasicDBList(); for( String genre: genres ) { list.add( genre ); } object.put("genres", genres); collection.insert( object ); i++; s = br.readLine(); } br.close(); System.out.println("Inserted " +i+ " Movies"); br = new BufferedReader( new FileReader( new File( "C:\\Project\\Recommender\\ml-10M100K\\tags.dat" ) )); collection = db.getCollection("tags"); s = br.readLine(); i=0; while( s != null ) { String[] sArr = s.split("::"); int user_id = Integer.parseInt( sArr[0] ); int movie_id = Integer.parseInt( sArr[1] ); String tag = sArr[2]; long timeStamp = Long.parseLong( sArr[3] ); BasicDBObject object = new BasicDBObject(); object.put("user_id", user_id); object.put("item_id", movie_id); object.put("tag", tag); object.put("timestamp", timeStamp); collection.insert( object ); i++; s = br.readLine(); } br.close(); System.out.println("Inserted " +i+ " Tags"); br = new BufferedReader( new FileReader( new File( "C:\\Project\\Recommender\\ml-10M100K\\ratings.dat" ) )); collection = db.getCollection("ratings"); s = br.readLine(); i=0; while( s != null ) { String[] sArr = s.split("::"); int user_id = Integer.parseInt( sArr[0] ); int movie_id = Integer.parseInt( sArr[1] ); String rating = sArr[2]; long timeStamp = Long.parseLong( sArr[3] ); BasicDBObject object = new BasicDBObject(); object.put("user_id", user_id); object.put("item_id", movie_id); object.put("preference", rating); object.put("timestamp", timeStamp); collection.insert( object ); i++; s = br.readLine(); } br.close(); System.out.println("Inserted " +i+ " Ratings"); mongo.close(); long time2 = new Date().getTime(); long timeTaken = (time2-time1)/1000; System.out.println("Completed in " +(int)timeTaken+ " Seconds"); } catch(Exception e) { e.printStackTrace(); } } }