How do you build a movie recommendation system via SVD using Apache Spark?

Asked by Last Modified  

3 Answers

Learn Hadoop

Follow 3
Answer

Please enter your answer

Technical Lead & Archiect - Azure & Databricks, Spark,Kafka,Snowflake,Scala,Pyspark,AWS Cloud,NoSQL

Hi Deepak , You need to use machine learning algorithm for the recommendation system . you can select CollabFiltering Algorithm and SBT Algorithm for recommendation of the movie .
Comments

Big Data Architect

Some students got trained under me done this mini project. Please reach out, can guide you.
Comments

Getting and processing the data In order to build an on-line movie recommender using Spark, we need to have our model data as preprocessed as possible. Parsing the dataset and building the model everytime a new recommendation needs to be done is not the best of the strategies. The list of task...
read more
Getting and processing the data In order to build an on-line movie recommender using Spark, we need to have our model data as preprocessed as possible. Parsing the dataset and building the model everytime a new recommendation needs to be done is not the best of the strategies. The list of task we can pre-compute includes: Loading and parsing the dataset. Persisting the resulting RDD for later use. Building the recommender model using the complete dataset. Persist the dataset for later use. This notebook explains the first of these tasks. complete_dataset_url = 'http://files.grouplens.org/datasets/movielens/ml-latest.zip' small_dataset_url = 'http://files.grouplens.org/datasets/movielens/ml-latest-small.zip' We also need to define download locations. import os datasets_path = os.path.join('..', 'datasets') complete_dataset_path = os.path.join(datasets_path, 'ml-latest.zip') small_dataset_path = os.path.join(datasets_path, 'ml-latest-small.zip') import urllib small_f = urllib.urlretrieve (small_dataset_url, small_dataset_path) complete_f = urllib.urlretrieve (complete_dataset_url, complete_dataset_path) Both of them are zip files containing a folder with ratings, movies, etc. We need to extract them into its individual folders so we can use each file later on. import zipfile with zipfile.ZipFile(small_dataset_path, "r") as z: z.extractall(datasets_path) with zipfile.ZipFile(complete_dataset_path, "r") as z: z.extractall(datasets_path) Loading and parsing datasets Now we are ready to read in each of the files and create an RDD consisting of parsed lines. Each line in the ratings dataset (ratings.csv) is formatted as: userId,movieId,rating,timestamp Each line in the movies (movies.csv) dataset is formatted as: movieId,title,genres Were genres has the format: Genre1|Genre2|Genre3... The tags file (tags.csv) has the format: userId,movieId,tag,timestamp And finally, the links.csv file has the format: movieId,imdbId,tmdbId The format of these files is uniform and simple, so we can use Python split() to parse their lines once they are loaded into RDDs. Parsing the movies and ratings files yields two RDDs: For each line in the ratings dataset, we create a tuple of (UserID, MovieID, Rating). We drop the timestamp because we do not need it for this recommender. For each line in the movies dataset, we create a tuple of (MovieID, Title). We drop the genres because we do not use them for this recommender. So let's load the raw ratings data. We need to filter out the header, included in each file. small_ratings_file = os.path.join(datasets_path, 'ml-latest-small', 'ratings.csv') small_ratings_raw_data = sc.textFile(small_ratings_file) small_ratings_raw_data_header = small_ratings_raw_data.take(1)[0] Now we can parse the raw data into a new RDD small_ratings_data = small_ratings_raw_data.filter(lambda line: line!=small_ratings_raw_data_header)\ .map(lambda line: line.split(",")).map(lambda tokens: (tokens[0],tokens[1],tokens[2])).cache() For illustrative purposes, we can take the first few lines of our RDD to see the result. In the final script we don't call any Spark action (e.g. take) until needed, since they trigger actual computations in the cluster. small_ratings_data.take(3) [(u'1', u'6', u'2.0'), (u'1', u'22', u'3.0'), (u'1', u'32', u'2.0')] We proceed in a similar way with the movies.csv file. small_movies_file = os.path.join(datasets_path, 'ml-latest-small', 'movies.csv') small_movies_raw_data = sc.textFile(small_movies_file) small_movies_raw_data_header = small_movies_raw_data.take(1)[0] small_movies_data = small_movies_raw_data.filter(lambda line: line!=small_movies_raw_data_header)\ .map(lambda line: line.split(",")).map(lambda tokens: (tokens[0],tokens[1])).cache() small_movies_data.take(3) [(u'1', u'Toy Story (1995)'), (u'2', u'Jumanji (1995)'), (u'3', u'Grumpier Old Men (1995)')] read less
Comments

View 1 more Answers

Related Questions

Hi... I am working as linux admin from last 2 yr. Now I want to peruse my career in Big Data hadoop. Please let me know what are opportunities for me and is my experience considerable and what are the challenges.
Hi Vinay, My friend moved from Linux admin to Handoop admin role with very good jump in his career. Definitely it is good move to jump to Hadoop from Linux Admin. Linux Admin market is tough as many...
Vinay Buram
what is the minimum course duration of hadoop and fee? can anyone give me info.
Hi, Hadoop ,Apache Spark and machine learning . Fees 12k
Tina
I want a lady Hadoop Trainer.
Yes. Career bridge it services, one of the best training insitute in hyderabad. we provide lady trainer for ofline / online batches. Please call and contact @970-532-3377. So that you can get all the details about trainings and career guiidance.
Chandrika
I want to pursue career in Data Analyst i.e. Hadoop, currently working in testing professional from last 4 year. Please let me know what�s the opportunity and is my work experience is considerable in Hadoop. Also let me know what need to be prepare for that. Please guide me. Thanks in advance.
Sachin, YEs your work experience will consider as total IT experience. But you need to prepare BigData Hadoop analytic from scratch(start-to end). That means you need to know Hadoop as BigData Hadoop developer...
Sachin
Hi all, This is Mahesh, I had one strong question eagerly to ask every one in IT people. As every one who has done engineering want to choose IT industry( for their career growth, Hard work,smart work their goals, for a good pay, for luxury, for time pass, acting,enjoyment). Ok, after graduated where some people placed in campus placements and some people will go further studies and some are will get refer to their company's and some people will get a employee chance as Third party vendor. Now,coming to job after working hard on one technology for at least 1 year will get bored for every one in IT industry and they don't have a chance to do R & D and don't get a new requirements and don't have a chance to move in to new technology and don't have a chance to put quit for a job because their personal reason. After getting bored on one technology they have moved into another technology their same programming and same requirement but only different syntax's, different programming. Is this happen for every developer, every programmer in IT industry. As I am totally confused which technology I have choose and sometimes I want to quit. According to Booming technologies I choose PHP and than Unix and now the same requirement same work and I am unable to think different in IT industry to move which technology to put challenge. And now I want to move into another technology, I am confused to choose there are infinite technologies in IT industry.Please guide me which technology I have to choose to get complete knowledge. As some one is telling to choose Hadoop technology. Thanks & Regards, Mahesh
If looking for Hadoop (And with the mindset you have :) ) , you go for Data Scientist role or Hadoop Analyst role. These roles need lot of analysis and you wont get bored . Apart from this , I would...
Mahesh

Now ask question in any of the 1000+ Categories, and get Answers from Tutors and Trainers on UrbanPro.com

Ask a Question

Related Lessons

How can you recover from a NameNode failure in Hadoop cluster?
How can you recover from a Namenode failure in Hadoop?Why is Namenode so important?Namenode is the most important Hadoop service. It contains the location of all blocks in the cluster. It maintains the...
B

Biswanath Banerjee

0 0
0

Big Data & Hadoop - Introductory Session - Data Science for Everyone
Data Science for Everyone An introductory video lesson on Big Data, the need, necessity, evolution and contributing factors. This is presented by Skill Sigma as part of the "Data Science for Everyone" series.

Hadoop v/s Spark
1. Introduction to Apache Spark: It is a framework for performing general data analytics on distributed computing cluster like Hadoop.It provides in memory computations for increase speed and data process...

Why is the Hadoop essential?
Capacity to store and process large measures of any information, rapidly. With information volumes and assortments always expanding, particularly from web-based life and the Internet of Things (IoT), that...

BigDATA HADOOP Infrastructure & Services: Basic Concept
Hadoop Cluster & Processes What is Hadoop Cluster? Hadoop cluster is the collections of one or more than one Linux Boxes. In a Hadoop cluster there should be a single Master(Linux machine/box) machine...

Recommended Articles

Big data is a phrase which is used to describe a very large amount of structured (or unstructured) data. This data is so “big” that it gets problematic to be handled using conventional database techniques and software.  A Big Data Scientist is a business employee who is responsible for handling and statistically evaluating...

Read full article >

In the domain of Information Technology, there is always a lot to learn and implement. However, some technologies have a relatively higher demand than the rest of the others. So here are some popular IT courses for the present and upcoming future: Cloud Computing Cloud Computing is a computing technique which is used...

Read full article >

Hadoop is a framework which has been developed for organizing and analysing big chunks of data for a business. Suppose you have a file larger than your system’s storage capacity and you can’t store it. Hadoop helps in storing bigger files than what could be stored on one particular server. You can therefore store very,...

Read full article >

We have already discussed why and how “Big Data” is all set to revolutionize our lives, professions and the way we communicate. Data is growing by leaps and bounds. The Walmart database handles over 2.6 petabytes of massive data from several million customer transactions every hour. Facebook database, similarly handles...

Read full article >

Find Hadoop near you

Looking for Hadoop ?

Learn from the Best Tutors on UrbanPro

Are you a Tutor or Training Institute?

Join UrbanPro Today to find students near you