Instruction

In this assignment, we will begin to work with a distributed recommender system by adapting one of our recommender systems to work with Apache Spark and compare the performance with our previous iteration. We will at the same time consider the efficiency of the system and the added complexity of using Spark. It is also allowed to use PySpark(Python), SparkR(R), sparklyr(R), or Scala, and may work on any platform including Databricks Community Edition or in local mode.

Introduction

In this project, by implementing the use of Spark, we will use the dataset MovieLense and Alternating Least Squares (ALS) method to test our model performance and efficiency of the system respectively with RecommenderLab and sparklyr(R), and to compare their results. With the statistics produced in this project, we will discuss when and why moving to a distributed platform such as Spark becoming necessary.

Load Packages

library(tidyverse)
library(dplyr)
library(sparklyr)
library(recommenderlab)
library(knitr)
library(kableExtra)
library(scales)

Import Data

Read Data

data(MovieLense)
y<-as.matrix(MovieLense@data[1:10,1:100])
y  %>% kable(caption = "Showing Part of the Dataset") %>% kable_styling("striped", full_width = TRUE)
Showing Part of the Dataset
Toy Story (1995) GoldenEye (1995) Four Rooms (1995) Get Shorty (1995) Copycat (1995) Shanghai Triad (Yao a yao yao dao waipo qiao) (1995) Twelve Monkeys (1995) Babe (1995) Dead Man Walking (1995) Richard III (1995) Seven (Se7en) (1995) Usual Suspects, The (1995) Mighty Aphrodite (1995) Postino, Il (1994) Mr. Holland's Opus (1995) French Twist (Gazon maudit) (1995) From Dusk Till Dawn (1996) White Balloon, The (1995) Antonia's Line (1995) Angels and Insects (1995) Muppet Treasure Island (1996) Braveheart (1995) Taxi Driver (1976) Rumble in the Bronx (1995) Birdcage, The (1996) Brothers McMullen, The (1995) Bad Boys (1995) Apollo 13 (1995) Batman Forever (1995) Belle de jour (1967) Crimson Tide (1995) Crumb (1994) Desperado (1995) Doom Generation, The (1995) Free Willy 2: The Adventure Home (1995) Mad Love (1995) Nadja (1994) Net, The (1995) Strange Days (1995) To Wong Foo, Thanks for Everything! Julie Newmar (1995) Billy Madison (1995) Clerks (1994) Disclosure (1994) Dolores Claiborne (1994) Eat Drink Man Woman (1994) Exotica (1994) Ed Wood (1994) Hoop Dreams (1994) I.Q. (1994) Star Wars (1977) Legends of the Fall (1994) Madness of King George, The (1994) Natural Born Killers (1994) Outbreak (1995) Professional, The (1994) Pulp Fiction (1994) Priest (1994) Quiz Show (1994) Three Colors: Red (1994) Three Colors: Blue (1993) Three Colors: White (1994) Stargate (1994) Santa Clause, The (1994) Shawshank Redemption, The (1994) What's Eating Gilbert Grape (1993) While You Were Sleeping (1995) Ace Ventura: Pet Detective (1994) Crow, The (1994) Forrest Gump (1994) Four Weddings and a Funeral (1994) Lion King, The (1994) Mask, The (1994) Maverick (1994) Faster Pussycat! Kill! Kill! (1965) Brother Minister: The Assassination of Malcolm X (1994) Carlito's Way (1993) Firm, The (1993) Free Willy (1993) Fugitive, The (1993) Hot Shots! Part Deux (1993) Hudsucker Proxy, The (1994) Jurassic Park (1993) Much Ado About Nothing (1993) Robert A. Heinlein's The Puppet Masters (1994) Ref, The (1994) Remains of the Day, The (1993) Searching for Bobby Fischer (1993) Sleepless in Seattle (1993) Blade Runner (1982) So I Married an Axe Murderer (1993) Nightmare Before Christmas, The (1993) True Romance (1993) Welcome to the Dollhouse (1995) Home Alone (1990) Aladdin (1992) Terminator 2: Judgment Day (1991) Dances with Wolves (1990) Silence of the Lambs, The (1991) Snow White and the Seven Dwarfs (1937) Fargo (1996)
5 3 4 3 3 5 4 1 5 3 2 5 5 5 5 5 3 4 5 4 1 4 4 3 4 3 2 4 1 3 3 5 4 2 1 2 2 3 4 3 2 5 4 5 5 4 4 5 3 5 4 4 3 3 5 4 5 4 5 5 4 3 2 5 4 4 3 4 3 3 3 4 3 1 4 4 4 1 4 4 5 5 3 4 3 5 5 4 5 4 5 3 5 2 4 5 3 4 3 5
4 0 0 0 0 0 0 0 0 2 0 0 4 4 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 3 0 0 4 3 0 0 0 4 0 0 0 0 0 0 0 0 0 0 4 0 5 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 4 1 0 0 1 0 0 1 4 0 0 0 0 0 0 0 0 3 2 0 0 0 0 0 0 0 0 5 3 0 0 0 3 4 0 0 3 3 5
4 0 0 0 0 0 2 4 4 0 0 4 2 5 3 0 0 0 4 0 3 3 4 0 0 0 0 2 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 4 0 0 0 0 0 4 0 0 5 0 0 0 0 4 0 0 0 0 3 3 4 0 0 0 0 0 0 0 3 0 4 0 0 0 0 3 4 0 4 0 0 0 0 0 2 0 0 5 0 5
0 0 0 5 0 0 5 5 5 4 3 5 0 0 0 0 0 0 0 0 0 5 3 0 3 0 4 5 3 0 4 4 0 0 0 0 0 0 5 0 0 0 0 5 0 0 5 0 0 5 2 4 5 3 0 5 0 0 0 0 0 3 0 5 0 0 0 4 5 1 5 5 3 0 0 0 5 3 4 4 5 3 0 0 0 4 0 0 5 3 3 5 5 0 0 5 5 4 5 5
0 0 0 0 0 0 3 0 0 0 3 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 5 0 0 0 0 0 0 4 0 0 0 0 0 0 3 0 0 0 0
0 0 0 0 0 5 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 0 0 4 0 0 4 0 4 0 4 5 3 0 0 4 0 0 0 0 0 5 5 0 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 4 0 0 0 0 0 0 0 4 0 5 0 0 0 0 0 5 0 0 4 3 0 0 0 4 0 0 0 0 4 4 0 0 0 0 0 0 0 0 0 0 0 4 0 0 4 0 0 0 0 0 0 0 4 0 0 0 0 4 5 5

Data Exploration

The dataset we will use for this project is MovieLense. This data is about movies. The table contains the ratings that the users give to movies, which was collected through the MovieLens website (movielens.umn.edu) from 943 users on 1664 movies during the seven-month period from September 19th, 1997 through April 22nd, 1998

It is a 943 rows x 1664 columns rating matrix of class ‘realRatingMatrix’ with 99,392 ratings. Each row of MovieLense corresponds to a user, and each column corresponds to a movie. There are more than 943 x 1664 = 1,500,000 combinations between a user and a movie. Therefore, storing the complete matrix would require more than 1,500,000 cells. However, not every user has watched every movie. Therefore, there are fewer then 100,000 ratings, and the matrix is sparse.

It is also included in our textbook, Building a Recommendation System with R, by Suresh K. Gorakala and Michele Usuelli.

As not every user has watched every movie, the dataset is large and sparse, which we may not use the whole dataset to build our models. The histogram below shows the number of ratings per user.

dim(MovieLense)
## [1]  943 1664
table(MovieLense@data %>% as.vector()) %>%
  data.frame() %>%
  mutate(Pcnt = percent(Freq/sum(Freq))) %>%
  rename(Rating = Var1) %>%
  kable() %>%
  kable_styling(bootstrap_options = c('striped', 'bordered'), full_width = FALSE) %>%
  add_header_above(c('Rating Frequency' = 3))
Rating Frequency
Rating Freq Pcnt
0 1469760 93.67%
1 6059 0.39%
2 11307 0.72%
3 27002 1.72%
4 33947 2.16%
5 21077 1.34%
MovieLense %>%
rowCounts() %>%
  data.frame() %>%
  rename(Rating_Per_User = '.') %>%
    ggplot(aes(x=Rating_Per_User)) +
    geom_histogram(color = 'grey', fill = 'deeppink4') +
    ggtitle('Number of Rating Per User')

Build Model in RecommenderLab

By splitting our sample dataset into training dataset and testing dataset with 5-fold cross validation, we will build our model by using RecommenderLab and Alternating Least Squares (ALS) method.

Sampling

We filter the users who has equal to or more than 100 ratings to be our sample dataset.

sample <- MovieLense[rowCounts(MovieLense)>=100,] 

Train-Test Splitting with Cross Validation

We implement 5-fold cross validation method to split our sample dataset into training dataset and testing dataset.

eval_set <- sample %>%
  evaluationScheme(method='split', train = 0.8, given=25)


data_train <- getData(eval_set, 'train')
data_test_known <- getData(eval_set, 'known')
data_test_unknown <- getData(eval_set, 'unknown')

Train Model

We then train our model with Alternating Least Squares (ALS) method. Before we start, we record the system time (start time).

start_time_reccom <- Sys.time()
rec_als_recom <- Recommender(data = data_train, method = 'ALS')

Make Prediction

And make prediction on the ratings. After the prediction, we record the system time (end time)

predict_recom <- predict(rec_als_recom, data_test_known, type='ratings')
predict_recom@data@x <- pmax(pmin(predict_recom@data@x, 5),0)
end_time_reccom <- Sys.time()

RMSE

We then find out the model accuracy by calculating the RMSE of our model.

eval_metrics <- calcPredictionAccuracy(predict_recom, data_test_unknown) 

rmse_recom <- eval_metrics[1] %>% as.numeric()

print(str_c('RMSE of Model Built in Recommenderlab: ',rmse_recom %>% as.character()))
## [1] "RMSE of Model Built in Recommenderlab: 0.970627716562321"

Compute Run Time

The system run time of the process is calcualted by the start time and end time we recorded above. It is more than 20 seconds.

run_time_reccom <- end_time_reccom - start_time_reccom
end_time_reccom - start_time_reccom
## Time difference of 25.617 secs

Build Model in Spark

It is our first time to work with Spark and to build model with it. We will build our second model by using sparklyr library in the following section.

Set Spark Configuration

Before building our model, we first set 80% of our system(PC)'s accessible memory to Spark.

conf <- spark_config()
#conf$`sparklyr.shell.driver-memory` <- '5G'
conf$spark.memory.fraction <- 0.8

Create Local Spark Connection

We then create our local Spark connection.

sc <- spark_connect(master = 'local', config = conf)

Copy Data as Spark Data Frame

As MovieLense is in a realRatingMatrix format, we convert it to a dataframe before copying to our local Spark. Because the recommender algorithm in Spark takes numerical values as input, we convert the items (movies) from factors to numerical representations. Note that we named the user column 'user' and the numerical representations of the item factors 'item' because the recommender algorithm takes column vectors named 'user' and 'item' by default and this setting cannot be changed.

movielense <- as(MovieLense[rowCounts(MovieLense)>=100,], "data.frame") %>%
  rename(movie = item) %>%
  mutate(item = factor(movie) %>% as.numeric(),
         user = user %>% as.numeric()) %>%
  select(user, item, movie, rating)

movie_tbl <- sdf_copy_to(sc, movielense, 'MovieLense',overwrite = TRUE)
movie_tbl

Train-Test-Split

We split our dataset into training set (80%) and testing set (20%).

movie_split <- movie_tbl %>%
  sdf_random_split(training = 0.8, testing = 0.2)

movie_train <- movie_split$training
movie_test <- movie_split$testing

Train Model

Train an ALS recommendation model in Spark using function ml_als.

start_time_spark <- Sys.time()
model_formula = rating ~ user + item
rec_als_spark <- ml_als(movie_train, model_formula, max_iter = 5)

Make Prediction

Predict ratings using function ml_predict.

predict_spark <- ml_predict(rec_als_spark, movie_test)
end_time_spark <- Sys.time()

Make Top 5 Recomendation for Each User

Create top 5 item recommendations for all users.

ml_recommend(rec_als_spark, type = 'item', 5) %>% 
  left_join(movie_tbl %>% select(item, movie) %>% distinct(), by = c('item')) %>%
  select(user, movie) %>%
  group_by(user) %>%
  mutate(rank = rank(movie)) %>%
  mutate(rank = paste('Recommendation', rank %>% as.character())) %>%
  collect() %>%
  spread(key = rank, value = movie) %>%
  arrange(user) %>%
  kable() %>%
  kable_styling(bootstrap_options = c('bordered', 'striped'), full_width = TRUE) %>%
  scroll_box(height = '400px')
user Recommendation 1 Recommendation 2 Recommendation 3 Recommendation 4 Recommendation 5
1 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Two or Three Things I Know About Her (1966) Wrong Trousers, The (1993)
2 Angel Baby (1995) Boys, Les (1997) Butcher Boy, The (1998) Pather Panchali (1955) Some Mother's Son (1996)
3 Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955) Star Wars (1977) Wrong Trousers, The (1993)
4 Boys, Les (1997) Love in the Afternoon (1957) Shawshank Redemption, The (1994) Star Wars (1977) Winnie the Pooh and the Blustery Day (1968)
5 Angel Baby (1995) Boys, Les (1997) Raiders of the Lost Ark (1981) Saint of Fort Washington, The (1993) Titanic (1997)
6 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Pather Panchali (1955) Some Mother's Son (1996)
7 Golden Earrings (1947) Nenette et Boni (1996) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
8 Angel Baby (1995) Boys, Les (1997) Butcher Boy, The (1998) Godfather, The (1972) Pather Panchali (1955)
9 Anna (1996) Boys, Les (1997) Fresh (1994) Pather Panchali (1955) Priest (1994)
10 Golden Earrings (1947) Nenette et Boni (1996) Once Upon a Time... When We Were Colored (1995) Return of the Jedi (1983) Star Wars (1977)
11 Angel Baby (1995) Boys, Les (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Wallace & Gromit: The Best of Aardman Animation (1996)
12 Aparajito (1956) Boys, Les (1997) Great Day in Harlem, A (1994) Hearts and Minds (1996) Two or Three Things I Know About Her (1966)
13 Angel Baby (1995) Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
14 Bastard Out of Carolina (1996) Killer (Bulletproof Heart) (1994) Nenette et Boni (1996) Stalker (1979) Whole Wide World, The (1996)
15 Angel Baby (1995) Boys, Les (1997) Nenette et Boni (1996) Pather Panchali (1955) Schindler's List (1993)
16 Angel Baby (1995) Godfather: Part II, The (1974) Hard Eight (1996) Saint of Fort Washington, The (1993) Terminator, The (1984)
17 Boys, Les (1997) FairyTale: A True Story (1997) Nenette et Boni (1996) Once Were Warriors (1994) Selena (1997)
18 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Once Were Warriors (1994) Wallace & Gromit: The Best of Aardman Animation (1996)
19 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Prefontaine (1997)
20 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
21 Double vie de Veronique, La (Double Life of Veronique, The) (1991) Killer (Bulletproof Heart) (1994) Schizopolis (1996) Slingshot, The (1993) Stalker (1979)
22 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
23 Angel Baby (1995) In the Line of Duty 2 (1987) Pather Panchali (1955) Pulp Fiction (1994) Saint of Fort Washington, The (1993)
24 Basketball Diaries, The (1995) Boys, Les (1997) My Man Godfrey (1936) Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991) Once Were Warriors (1994)
25 Hard Eight (1996) In the Line of Duty 2 (1987) Pather Panchali (1955) Paths of Glory (1957) Saint of Fort Washington, The (1993)
26 Angel Baby (1995) Boys, Les (1997) Raiders of the Lost Ark (1981) Saint of Fort Washington, The (1993) Star Wars (1977)
27 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Pather Panchali (1955) Some Mother's Son (1996)
28 Golden Earrings (1947) Killer (Bulletproof Heart) (1994) Nenette et Boni (1996) Shawshank Redemption, The (1994) Titanic (1997)
29 Angel Baby (1995) Anna (1996) Boys, Les (1997) Once Were Warriors (1994) Pather Panchali (1955)
30 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Schindler's List (1993) Shawshank Redemption, The (1994)
31 Angel Baby (1995) Boys, Les (1997) Paradise Lost: The Child Murders at Robin Hood Hills (1996) Pather Panchali (1955) Some Mother's Son (1996)
32 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Once Were Warriors (1994) Roman Holiday (1953)
33 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Saint of Fort Washington, The (1993)
34 Boys, Les (1997) Little Princess, A (1995) Nenette et Boni (1996) Selena (1997) World of Apu, The (Apur Sansar) (1959)
35 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) When We Were Kings (1996)
36 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Star Wars (1977)
37 Angel Baby (1995) Braindead (1992) Pather Panchali (1955) Pulp Fiction (1994) Safe (1995)
38 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Once Were Warriors (1994) Shawshank Redemption, The (1994)
39 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pulp Fiction (1994) Some Mother's Son (1996)
40 Angel Baby (1995) Anna (1996) Boys, Les (1997) Pather Panchali (1955) Some Folks Call It a Sling Blade (1993)
41 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
42 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
43 Godfather, The (1972) In the Line of Duty 2 (1987) Pather Panchali (1955) Pulp Fiction (1994) Saint of Fort Washington, The (1993)
44 Boys, Les (1997) Hard Eight (1996) Pather Panchali (1955) Paths of Glory (1957) When We Were Kings (1996)
45 Angel Baby (1995) Hard Eight (1996) Pulp Fiction (1994) Saint of Fort Washington, The (1993) Schizopolis (1996)
46 Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Star Wars (1977) Titanic (1997)
47 Braveheart (1995) Forrest Gump (1994) Golden Earrings (1947) Nenette et Boni (1996) Shawshank Redemption, The (1994)
48 Golden Earrings (1947) Nenette et Boni (1996) Shawshank Redemption, The (1994) Titanic (1997) Winnie the Pooh and the Blustery Day (1968)
49 Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955) Two or Three Things I Know About Her (1966) Wrong Trousers, The (1993)
50 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991) Schindler's List (1993)
51 Angel Baby (1995) Anna (1996) Boys, Les (1997) Once Were Warriors (1994) Some Mother's Son (1996)
52 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Once Were Warriors (1994) Pather Panchali (1955)
53 Angel Baby (1995) Boys, Les (1997) Ma vie en rose (My Life in Pink) (1997) Once Were Warriors (1994) Some Mother's Son (1996)
54 Boys, Les (1997) Bread and Chocolate (Pane e cioccolata) (1973) In the Line of Duty 2 (1987) Pather Panchali (1955) Three Colors: Blue (1993)
55 Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Mother's Son (1996) Wallace & Gromit: The Best of Aardman Animation (1996)
56 Angel Baby (1995) Braindead (1992) Hard Eight (1996) In the Line of Duty 2 (1987) Pulp Fiction (1994)
57 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Mother's Son (1996)
58 Boys, Les (1997) Once Were Warriors (1994) Saint of Fort Washington, The (1993) Some Mother's Son (1996) Wallace & Gromit: The Best of Aardman Animation (1996)
59 Boys, Les (1997) Little Princess, A (1995) Nenette et Boni (1996) Raiders of the Lost Ark (1981) Selena (1997)
60 Boys, Les (1997) Fresh (1994) Golden Earrings (1947) Love & Human Remains (1993) Whole Wide World, The (1996)
61 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Butcher Boy, The (1998) Pather Panchali (1955)
62 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Once Were Warriors (1994) Some Mother's Son (1996)
63 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Nenette et Boni (1996) Pather Panchali (1955)
64 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
65 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
66 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Saint of Fort Washington, The (1993)
67 Boy's Life 2 (1997) Bread and Chocolate (Pane e cioccolata) (1973) Faust (1994) In the Line of Duty 2 (1987) Miserables, Les (1995)
68 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Butcher Boy, The (1998) Some Mother's Son (1996)
69 Angel Baby (1995) Boys, Les (1997) Little Princess, The (1939) Pather Panchali (1955) Some Folks Call It a Sling Blade (1993)
70 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Saint of Fort Washington, The (1993)
71 Angel Baby (1995) Pillow Book, The (1995) Saint of Fort Washington, The (1993) Santa with Muscles (1996) Stalker (1979)
72 Angel Baby (1995) Boys, Les (1997) Fresh (1994) Shall We Dance? (1996) Some Mother's Son (1996)
73 Boys, Les (1997) Fresh (1994) My Man Godfrey (1936) Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991) Radioland Murders (1994)
74 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Selena (1997) Titanic (1997)
75 Angel Baby (1995) Boys, Les (1997) Saint of Fort Washington, The (1993) Schizopolis (1996) Wallace & Gromit: The Best of Aardman Animation (1996)
76 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Saint of Fort Washington, The (1993)
77 Angel Baby (1995) Boys, Les (1997) Godfather, The (1972) In the Line of Duty 2 (1987) Pather Panchali (1955)
78 Golden Earrings (1947) Hard Eight (1996) Pather Panchali (1955) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
79 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Some Mother's Son (1996) Wallace & Gromit: The Best of Aardman Animation (1996)
80 Angel Baby (1995) Boys, Les (1997) Braindead (1992) Pather Panchali (1955) World of Apu, The (Apur Sansar) (1959)
81 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Butcher Boy, The (1998) Some Mother's Son (1996)
82 Angel Baby (1995) Boys, Les (1997) Nenette et Boni (1996) Pather Panchali (1955) Schindler's List (1993)
83 Angel Baby (1995) Boys, Les (1997) Fresh (1994) Once Were Warriors (1994) Pather Panchali (1955)
84 Boys, Les (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997) Wallace & Gromit: The Best of Aardman Animation (1996)
85 Angel Baby (1995) Boys, Les (1997) Godfather, The (1972) In the Line of Duty 2 (1987) Pather Panchali (1955)
86 Boys, Les (1997) Close Shave, A (1995) Once Were Warriors (1994) Sweet Hereafter, The (1997) Two or Three Things I Know About Her (1966)
87 Boys, Les (1997) Close Shave, A (1995) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
88 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Mother's Son (1996)
89 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Some Folks Call It a Sling Blade (1993) Star Wars (1977)
90 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Pather Panchali (1955) Some Mother's Son (1996)
91 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Star Wars (1977)
92 Golden Earrings (1947) Nenette et Boni (1996) Shawshank Redemption, The (1994) Stripes (1981) Titanic (1997)
93 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991) Once Were Warriors (1994)
94 Golden Earrings (1947) Saint of Fort Washington, The (1993) Schizopolis (1996) Shawshank Redemption, The (1994) Titanic (1997)
95 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Once Were Warriors (1994) Pather Panchali (1955)
96 Angel Baby (1995) Aparajito (1956) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955)
97 Angel Baby (1995) Best Men (1997) Boys, Les (1997) Great Escape, The (1963) Of Human Bondage (1934)
98 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
99 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Pather Panchali (1955) Schindler's List (1993)
100 Boys, Les (1997) Golden Earrings (1947) My Man Godfrey (1936) Shawshank Redemption, The (1994) Some Mother's Son (1996)
101 Angel Baby (1995) Raiders of the Lost Ark (1981) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
102 Anna (1996) Boys, Les (1997) Pather Panchali (1955) Some Mother's Son (1996) Three Colors: Blue (1993)
103 Clerks (1994) Godfather, The (1972) Golden Earrings (1947) Hard Eight (1996) Saint of Fort Washington, The (1993)
104 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
105 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Mina Tannenbaum (1994) Paradise Lost: The Child Murders at Robin Hood Hills (1996)
106 Angel Baby (1995) Boys, Les (1997) Citizen Kane (1941) In the Line of Duty 2 (1987) Pather Panchali (1955)
107 Angel Baby (1995) Boys, Les (1997) Godfather, The (1972) In the Line of Duty 2 (1987) Pather Panchali (1955)
108 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Pather Panchali (1955) Some Mother's Son (1996)
109 Nenette et Boni (1996) Raiders of the Lost Ark (1981) Selena (1997) Star Wars (1977) Titanic (1997)
110 Clerks (1994) Golden Earrings (1947) Hard Eight (1996) Saint of Fort Washington, The (1993) When We Were Kings (1996)
111 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Some Mother's Son (1996) Three Colors: Blue (1993)
112 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Pather Panchali (1955) Some Mother's Son (1996)
113 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) In the Line of Duty 2 (1987) Pather Panchali (1955)
114 Angel Baby (1995) Boys, Les (1997) Saint of Fort Washington, The (1993) Schizopolis (1996) Wallace & Gromit: The Best of Aardman Animation (1996)
115 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
116 Angel Baby (1995) Nenette et Boni (1996) Raiders of the Lost Ark (1981) Schizopolis (1996) Titanic (1997)
117 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Schindler's List (1993) Some Mother's Son (1996)
118 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) In the Line of Duty 2 (1987) Pather Panchali (1955)
119 Golden Earrings (1947) Gumby: The Movie (1995) Nenette et Boni (1996) Sixth Man, The (1997) Sound of Music, The (1965)
120 Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Mother's Son (1996) Story of Xinghua, The (1993)
121 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
122 Boy's Life 2 (1997) Faust (1994) Fille seule, La (A Single Girl) (1995) Sweet Hereafter, The (1997) Two or Three Things I Know About Her (1966)
123 Angel Baby (1995) Clockwork Orange, A (1971) In the Line of Duty 2 (1987) Pather Panchali (1955) Paths of Glory (1957)
124 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Pather Panchali (1955) Some Mother's Son (1996)
125 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) In the Line of Duty 2 (1987) Pather Panchali (1955)
126 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) In the Line of Duty 2 (1987) Pather Panchali (1955)
127 Fresh (1994) Golden Earrings (1947) Prefontaine (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
128 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
129 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
130 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Schindler's List (1993) Shawshank Redemption, The (1994)
131 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Fresh (1994) Some Mother's Son (1996)
132 Angel Baby (1995) Boys, Les (1997) Little Princess, The (1939) Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991) Once Were Warriors (1994)
133 Friday (1995) Mondo (1996) Pollyanna (1960) Sound of Music, The (1965) Unzipped (1995)
134 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Paths of Glory (1957) Saint of Fort Washington, The (1993)
135 Angel Baby (1995) Boys, Les (1997) Godfather, The (1972) Pather Panchali (1955) Saint of Fort Washington, The (1993)
136 Angel Baby (1995) Aparajito (1956) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955)
137 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Shawshank Redemption, The (1994) Some Mother's Son (1996)
138 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
139 Boys, Les (1997) Braveheart (1995) Golden Earrings (1947) Nenette et Boni (1996) Selena (1997)
140 Dead Man (1995) Die xue shuang xiong (Killer, The) (1989) Hard Eight (1996) Pather Panchali (1955) Reservoir Dogs (1992)
141 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) In the Line of Duty 2 (1987) Pather Panchali (1955)
142 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Saint of Fort Washington, The (1993)
143 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Titanic (1997)
144 Bitter Moon (1992) Hard Eight (1996) Saint of Fort Washington, The (1993) Schizopolis (1996) Wallace & Gromit: The Best of Aardman Animation (1996)
145 Double vie de Veronique, La (Double Life of Veronique, The) (1991) Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Stalker (1979)
146 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Once Were Warriors (1994) Sense and Sensibility (1995)
147 Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955) Saint of Fort Washington, The (1993) Wrong Trousers, The (1993)
148 Hard Eight (1996) Pather Panchali (1955) Saint of Fort Washington, The (1993) Schizopolis (1996) Usual Suspects, The (1995)
149 Braindead (1992) Bread and Chocolate (Pane e cioccolata) (1973) Duoluo tianshi (1995) Hard Eight (1996) In the Line of Duty 2 (1987)
150 Godfather, The (1972) Hard Eight (1996) Pather Panchali (1955) Paths of Glory (1957) Saint of Fort Washington, The (1993)
151 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Schindler's List (1993) Some Folks Call It a Sling Blade (1993)
152 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Red Firecracker, Green Firecracker (1994) Story of Xinghua, The (1993)
153 Hard Eight (1996) In the Line of Duty 2 (1987) Saint of Fort Washington, The (1993) Schizopolis (1996) Wallace & Gromit: The Best of Aardman Animation (1996)
154 Braveheart (1995) Golden Earrings (1947) Nenette et Boni (1996) Selena (1997) Titanic (1997)
155 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Folks Call It a Sling Blade (1993)
156 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Pulp Fiction (1994) Some Mother's Son (1996)
157 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Pather Panchali (1955) Saint of Fort Washington, The (1993)
158 Boys, Les (1997) Bread and Chocolate (Pane e cioccolata) (1973) Faust (1994) In the Line of Duty 2 (1987) Wallace & Gromit: The Best of Aardman Animation (1996)
159 Boys, Les (1997) Golden Earrings (1947) Raiders of the Lost Ark (1981) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
160 Antonia's Line (1995) Apostle, The (1997) Bad Taste (1987) Godfather: Part II, The (1974) Microcosmos: Le peuple de l'herbe (1996)
161 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
162 Boys, Les (1997) Fresh (1994) Saint of Fort Washington, The (1993) Schizopolis (1996) Stalker (1979)
163 Angel Baby (1995) Boys, Les (1997) Godfather, The (1972) In the Line of Duty 2 (1987) Pather Panchali (1955)
164 Angel Baby (1995) Boys, Les (1997) Braindead (1992) Ma vie en rose (My Life in Pink) (1997) Some Mother's Son (1996)
165 Boys, Les (1997) Close Shave, A (1995) Star Wars (1977) When We Were Kings (1996) Wrong Trousers, The (1993)
166 Boys, Les (1997) Raiders of the Lost Ark (1981) Saint of Fort Washington, The (1993) Star Wars (1977) Wrong Trousers, The (1993)
167 Boys, Les (1997) Bread and Chocolate (Pane e cioccolata) (1973) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
168 Boys, Les (1997) Close Shave, A (1995) Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
169 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Selena (1997) Star Wars (1977)
170 As Good As It Gets (1997) Die xue shuang xiong (Killer, The) (1989) Golden Earrings (1947) Last Dance (1996) Leading Man, The (1996)
171 Angel Baby (1995) Boys, Les (1997) Faust (1994) In the Line of Duty 2 (1987) Some Mother's Son (1996)
172 Nenette et Boni (1996) Raiders of the Lost Ark (1981) Saint of Fort Washington, The (1993) Titanic (1997) Wrong Trousers, The (1993)
173 Bitter Moon (1992) Fresh (1994) Hard Eight (1996) Pather Panchali (1955) Saint of Fort Washington, The (1993)
174 Double vie de Veronique, La (Double Life of Veronique, The) (1991) Hard Eight (1996) Saint of Fort Washington, The (1993) Schizopolis (1996) Swingers (1996)
175 Golden Earrings (1947) Hard Eight (1996) Pather Panchali (1955) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
176 Angel Baby (1995) Boys, Les (1997) Dead Man (1995) In the Line of Duty 2 (1987) Pather Panchali (1955)
177 Amistad (1997) Boys, Les (1997) Braindead (1992) Golden Earrings (1947) Some Mother's Son (1996)
178 Delicatessen (1991) Duck Soup (1933) Paths of Glory (1957) To Be or Not to Be (1942) Wrong Trousers, The (1993)
179 Boys, Les (1997) Margaret's Museum (1995) Pather Panchali (1955) Some Mother's Son (1996) Three Colors: Blue (1993)
180 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
181 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Once Were Warriors (1994) Some Mother's Son (1996)
182 Angel Baby (1995) Braveheart (1995) Golden Earrings (1947) Nenette et Boni (1996) Shawshank Redemption, The (1994)
183 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Raiders of the Lost Ark (1981) Star Wars (1977)
184 Angel Baby (1995) Boys, Les (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Wallace & Gromit: The Best of Aardman Animation (1996)
185 Boys, Les (1997) Saint of Fort Washington, The (1993) Schizopolis (1996) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
186 Angel Baby (1995) Boys, Les (1997) Gattaca (1997) Some Mother's Son (1996) To Live (Huozhe) (1994)
187 American Dream (1990) Angel Baby (1995) Ma vie en rose (My Life in Pink) (1997) Safe (1995) Whole Wide World, The (1996)
188 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Saint of Fort Washington, The (1993)
189 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
190 Boys, Les (1997) Nenette et Boni (1996) Raiders of the Lost Ark (1981) Selena (1997) Titanic (1997)
191 Angel Baby (1995) Boys, Les (1997) Fresh (1994) Pather Panchali (1955) Some Mother's Son (1996)
192 Angel Baby (1995) Boys, Les (1997) Raiders of the Lost Ark (1981) Star Wars (1977) Wrong Trousers, The (1993)
193 Angel Baby (1995) Boy's Life 2 (1997) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955)
194 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Sound of Music, The (1965)
195 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Mother's Son (1996)
196 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Some Folks Call It a Sling Blade (1993) Some Mother's Son (1996)
197 Boys, Les (1997) Fresh (1994) Golden Earrings (1947) Saint of Fort Washington, The (1993) Star Wars (1977)
198 Empire Strikes Back, The (1980) Raiders of the Lost Ark (1981) Saint of Fort Washington, The (1993) Schizopolis (1996) Star Wars (1977)
199 Golden Earrings (1947) Good Will Hunting (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
200 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) In the Line of Duty 2 (1987) Pather Panchali (1955)
201 Angel Baby (1995) Boys, Les (1997) Nenette et Boni (1996) Raiders of the Lost Ark (1981) Titanic (1997)
202 Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Star Wars (1977) Titanic (1997)
203 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
204 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Two or Three Things I Know About Her (1966)
205 Boys, Les (1997) Braindead (1992) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
206 Clockwork Orange, A (1971) Dead Man (1995) Faust (1994) Pather Panchali (1955) Three Colors: Blue (1993)
207 Boys, Les (1997) Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
208 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Prefontaine (1997)
209 Angel Baby (1995) Double vie de Veronique, La (Double Life of Veronique, The) (1991) In the Line of Duty 2 (1987) Pulp Fiction (1994) Saint of Fort Washington, The (1993)
210 Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Stalker (1979) Titanic (1997)
211 Boys, Les (1997) Fresh (1994) Golden Earrings (1947) My Man Godfrey (1936) Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991)
212 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Butcher Boy, The (1998) Pather Panchali (1955)
213 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pulp Fiction (1994) Saint of Fort Washington, The (1993)
214 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Schindler's List (1993)
215 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) In the Line of Duty 2 (1987) Pather Panchali (1955)
216 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955) Some Mother's Son (1996)
217 Aparajito (1956) Boys, Les (1997) Pather Panchali (1955) Paths of Glory (1957) Three Colors: Blue (1993)
218 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
219 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Roman Holiday (1953) Some Mother's Son (1996)
220 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) In the Line of Duty 2 (1987) Pather Panchali (1955)
221 Angel Baby (1995) Boys, Les (1997) Clockwork Orange, A (1971) Pather Panchali (1955) Red Firecracker, Green Firecracker (1994)
222 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Shawshank Redemption, The (1994)
223 Boys, Les (1997) Godfather, The (1972) In the Line of Duty 2 (1987) Pather Panchali (1955) Wrong Trousers, The (1993)
224 Bye Bye, Love (1995) Frisk (1995) Gumby: The Movie (1995) In Love and War (1996) Saint of Fort Washington, The (1993)
225 Pather Panchali (1955) Saint of Fort Washington, The (1993) Schizopolis (1996) Stalker (1979) Wrong Trousers, The (1993)
226 Boys, Les (1997) Saint of Fort Washington, The (1993) Schizopolis (1996) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
227 Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Mother's Son (1996) Wallace & Gromit: The Best of Aardman Animation (1996)
228 Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Star Wars (1977) Wrong Trousers, The (1993)
229 Boys, Les (1997) Close Shave, A (1995) Ghost in the Shell (Kokaku kidotai) (1995) Pather Panchali (1955) Saint of Fort Washington, The (1993)
230 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
231 Golden Earrings (1947) Killer (Bulletproof Heart) (1994) Nenette et Boni (1996) Saint of Fort Washington, The (1993) Titanic (1997)
232 Angel Baby (1995) Boys, Les (1997) Empire Strikes Back, The (1980) Once Upon a Time... When We Were Colored (1995) Princess Bride, The (1987)
233 Boys, Les (1997) Brothers in Trouble (1995) Butcher Boy, The (1998) Pather Panchali (1955) Some Mother's Son (1996)
234 Brassed Off (1996) Golden Earrings (1947) Nenette et Boni (1996) Selena (1997) Story of Xinghua, The (1993)
235 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Roman Holiday (1953) Rosewood (1997)
236 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Pather Panchali (1955) Saint of Fort Washington, The (1993)
237 Boys, Les (1997) Saint of Fort Washington, The (1993) Star Wars (1977) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
238 Firestorm (1998) Fresh (1994) Golden Earrings (1947) Love & Human Remains (1993) Stalker (1979)
239 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
240 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Two or Three Things I Know About Her (1966)
241 Angel Baby (1995) Boys, Les (1997) Empire Strikes Back, The (1980) Of Human Bondage (1934) Star Wars (1977)
242 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955) Some Mother's Son (1996)
243 Braveheart (1995) Golden Earrings (1947) Nenette et Boni (1996) Saint of Fort Washington, The (1993) Star Wars (1977)
244 Angel Baby (1995) Boys, Les (1997) Nenette et Boni (1996) Shawshank Redemption, The (1994) Winnie the Pooh and the Blustery Day (1968)
245 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Butcher Boy, The (1998) Safe (1995)
246 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Pather Panchali (1955) Some Mother's Son (1996)
247 Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955) Star Wars (1977) Wrong Trousers, The (1993)
248 Angel Baby (1995) Boys, Les (1997) Saint of Fort Washington, The (1993) Star Wars (1977) Wrong Trousers, The (1993)
249 Golden Earrings (1947) Good Will Hunting (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
250 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) In the Line of Duty 2 (1987) Pather Panchali (1955)
251 Boys, Les (1997) Golden Earrings (1947) Good Will Hunting (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
252 Angel Baby (1995) Boys, Les (1997) Citizen Kane (1941) Pather Panchali (1955) Some Mother's Son (1996)
253 Golden Earrings (1947) Raiders of the Lost Ark (1981) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
254 Golden Earrings (1947) Hard Eight (1996) Pather Panchali (1955) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
255 Angel Baby (1995) Nenette et Boni (1996) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
256 Angel Baby (1995) Boys, Les (1997) Braindead (1992) Brothers in Trouble (1995) Butcher Boy, The (1998)
257 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Folks Call It a Sling Blade (1993)
258 Chungking Express (1994) Haunted World of Edward D. Wood Jr., The (1995) Microcosmos: Le peuple de l'herbe (1996) Sweet Hereafter, The (1997) Wrong Trousers, The (1993)
259 Golden Earrings (1947) Good Will Hunting (1997) My Man Godfrey (1936) Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991) Switchback (1997)
260 Beautiful Thing (1996) Haunted World of Edward D. Wood Jr., The (1995) Oscar & Lucinda (1997) Some Mother's Son (1996) Stalker (1979)
261 Angel Baby (1995) Boys, Les (1997) Fast, Cheap & Out of Control (1997) Pather Panchali (1955) Some Folks Call It a Sling Blade (1993)
262 Angel Baby (1995) Boys, Les (1997) My Man Godfrey (1936) Pather Panchali (1955) Some Mother's Son (1996)
263 Bastard Out of Carolina (1996) Doom Generation, The (1995) Nenette et Boni (1996) Sixth Man, The (1997) Stripes (1981)
264 Boys, Les (1997) Caught (1996) Miserables, Les (1995) Some Mother's Son (1996) Story of Xinghua, The (1993)
265 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Story of Xinghua, The (1993) Titanic (1997)
266 Golden Earrings (1947) Good Will Hunting (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)
267 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Roman Holiday (1953) Some Mother's Son (1996)
268 Boys, Les (1997) Gumby: The Movie (1995) Love Serenade (1996) Sixth Man, The (1997) Sound of Music, The (1965)
269 Golden Earrings (1947) In the Line of Duty 2 (1987) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Wallace & Gromit: The Best of Aardman Animation (1996)
270 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Schindler's List (1993) Some Mother's Son (1996)
271 American Dream (1990) Angel Baby (1995) Ma vie en rose (My Life in Pink) (1997) Once Were Warriors (1994) Some Mother's Son (1996)
272 Boys, Les (1997) Nenette et Boni (1996) Raiders of the Lost Ark (1981) Star Wars (1977) Titanic (1997)
273 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Saint of Fort Washington, The (1993) Wrong Trousers, The (1993)
274 Boy's Life 2 (1997) Boys, Les (1997) Bread and Chocolate (Pane e cioccolata) (1973) City of Industry (1997) World of Apu, The (Apur Sansar) (1959)
275 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Wrong Trousers, The (1993)
276 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Pather Panchali (1955) Schindler's List (1993)
277 Angel Baby (1995) Boys, Les (1997) Godfather, The (1972) In the Line of Duty 2 (1987) Pather Panchali (1955)
278 Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Star Wars (1977) Wrong Trousers, The (1993)
279 Boys, Les (1997) Golden Earrings (1947) Pather Panchali (1955) Raiders of the Lost Ark (1981) Star Wars (1977)
280 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Meet John Doe (1941) Pather Panchali (1955)
281 Angel Baby (1995) Boys, Les (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Wallace & Gromit: The Best of Aardman Animation (1996)
282 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
283 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955) Saint of Fort Washington, The (1993)
284 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Pather Panchali (1955) Some Mother's Son (1996)
285 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Shawshank Redemption, The (1994)
286 Angel Baby (1995) Boys, Les (1997) Citizen Kane (1941) Pather Panchali (1955) Some Mother's Son (1996)
287 Angel Baby (1995) Boys, Les (1997) Faust (1994) Sweet Hereafter, The (1997) Two or Three Things I Know About Her (1966)
288 Angel Baby (1995) Empire Strikes Back, The (1980) Pather Panchali (1955) Paths of Glory (1957) When We Were Kings (1996)
289 Angel Baby (1995) Boys, Les (1997) Fresh (1994) Margaret's Museum (1995) Pather Panchali (1955)
290 Golden Earrings (1947) Good Will Hunting (1997) My Man Godfrey (1936) Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991) Rough Magic (1995)
291 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Schindler's List (1993)
292 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Pather Panchali (1955) Some Folks Call It a Sling Blade (1993)
293 Boys, Les (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997) Wallace & Gromit: The Best of Aardman Animation (1996)
294 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955) Wrong Trousers, The (1993)
295 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Shawshank Redemption, The (1994) Titanic (1997)
296 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Prefontaine (1997) Sixth Man, The (1997)
297 Angel Baby (1995) Boys, Les (1997) Saint of Fort Washington, The (1993) Star Wars (1977) Wrong Trousers, The (1993)
298 Angel Baby (1995) Margaret's Museum (1995) Nico Icon (1995) Once Upon a Time in the West (1969) Stalker (1979)
299 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Usual Suspects, The (1995)
300 Angel Baby (1995) Boys, Les (1997) Fresh (1994) Some Folks Call It a Sling Blade (1993) Whole Wide World, The (1996)
301 Amistad (1997) Angel Baby (1995) Boys, Les (1997) My Man Godfrey (1936) Schindler's List (1993)
302 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Nenette et Boni (1996) Pather Panchali (1955)
303 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Saint of Fort Washington, The (1993)
304 In Love and War (1996) Love & Human Remains (1993) Nenette et Boni (1996) Saint of Fort Washington, The (1993) Stalker (1979)
305 Boys, Les (1997) Fresh (1994) Pather Panchali (1955) Saint of Fort Washington, The (1993) Stalker (1979)
306 Antonia's Line (1995) City of Industry (1997) Some Mother's Son (1996) Story of Xinghua, The (1993) To Live (Huozhe) (1994)
307 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Raiders of the Lost Ark (1981) Selena (1997)
308 Angel Baby (1995) Boys, Les (1997) Little Princess, The (1939) Nenette et Boni (1996) Once Were Warriors (1994)
309 Braindead (1992) In the Line of Duty 2 (1987) Pather Panchali (1955) Pulp Fiction (1994) Romper Stomper (1992)
310 Angel Baby (1995) Boys, Les (1997) Once Were Warriors (1994) Safe (1995) Some Mother's Son (1996)
311 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
312 Margaret's Museum (1995) Pather Panchali (1955) Saint of Fort Washington, The (1993) Star Wars (1977) Terminator, The (1984)
313 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
314 Anna (1996) Beautiful Thing (1996) Boys, Les (1997) My Man Godfrey (1936) Sum of Us, The (1994)
315 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
316 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Close Shave, A (1995) Pather Panchali (1955)
317 Angel Baby (1995) Boys, Les (1997) Margaret's Museum (1995) Pather Panchali (1955) Saint of Fort Washington, The (1993)
318 Angel Baby (1995) Boys, Les (1997) Braindead (1992) In the Line of Duty 2 (1987) Pather Panchali (1955)
319 Boys, Les (1997) Fresh (1994) Pather Panchali (1955) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
320 Double vie de Veronique, La (Double Life of Veronique, The) (1991) Incognito (1997) Koyaanisqatsi (1983) Ma vie en rose (My Life in Pink) (1997) Stalker (1979)
321 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
322 Faust (1994) Fear of a Black Hat (1993) Ghost in the Shell (Kokaku kidotai) (1995) In the Line of Duty 2 (1987) Two or Three Things I Know About Her (1966)
323 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Saint of Fort Washington, The (1993) Star Wars (1977)
324 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Mother's Son (1996)
325 Pather Panchali (1955) Princess Bride, The (1987) Saint of Fort Washington, The (1993) Star Wars (1977) Usual Suspects, The (1995)
326 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Red Firecracker, Green Firecracker (1994) Stalingrad (1993)
327 Angel Baby (1995) Boys, Les (1997) Butcher Boy, The (1998) Pather Panchali (1955) Saint of Fort Washington, The (1993)
328 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Saint of Fort Washington, The (1993) Star Wars (1977)
329 Boys, Les (1997) Close Shave, A (1995) Golden Earrings (1947) Nenette et Boni (1996) Star Wars (1977)
330 Boys, Les (1997) Pather Panchali (1955) Some Mother's Son (1996) Stalker (1979) Two or Three Things I Know About Her (1966)
331 Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Shawshank Redemption, The (1994) Titanic (1997)
332 Angel Baby (1995) Saint of Fort Washington, The (1993) Schizopolis (1996) Shawshank Redemption, The (1994) Wallace & Gromit: The Best of Aardman Animation (1996)
333 Happy Gilmore (1996) Princess Bride, The (1987) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Wallace & Gromit: The Best of Aardman Animation (1996)
334 Angel Baby (1995) Boys, Les (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Wallace & Gromit: The Best of Aardman Animation (1996)
335 Angel Baby (1995) Boys, Les (1997) Braindead (1992) In the Line of Duty 2 (1987) Pather Panchali (1955)
336 Angel Baby (1995) Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Star Wars (1977)
337 Anna (1996) Boys, Les (1997) Once Were Warriors (1994) Pather Panchali (1955) Some Mother's Son (1996)
338 Angel Baby (1995) Boys, Les (1997) Golden Earrings (1947) Star Wars (1977) When We Were Kings (1996)
339 Boys, Les (1997) Pather Panchali (1955) Saint of Fort Washington, The (1993) Some Mother's Son (1996) Stalker (1979)
340 Boys, Les (1997) Nenette et Boni (1996) Selena (1997) Shawshank Redemption, The (1994) Titanic (1997)
341 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Pather Panchali (1955) Some Mother's Son (1996)
342 Affair to Remember, An (1957) Boys, Les (1997) Golden Earrings (1947) Nenette et Boni (1996) Sound of Music, The (1965)
343 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Saint of Fort Washington, The (1993) Wallace & Gromit: The Best of Aardman Animation (1996)
344 Boys, Les (1997) Golden Earrings (1947) Good Will Hunting (1997) Nenette et Boni (1996) Shawshank Redemption, The (1994)
345 Angel Baby (1995) Boys, Les (1997) Casablanca (1942) Pather Panchali (1955) Some Mother's Son (1996)
346 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
347 American Dream (1990) Ma vie en rose (My Life in Pink) (1997) Once Were Warriors (1994) Safe (1995) Some Mother's Son (1996)
348 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Butcher Boy, The (1998) Some Mother's Son (1996)
349 Angel Baby (1995) Boys, Les (1997) Godfather, The (1972) Pather Panchali (1955) Saint of Fort Washington, The (1993)
350 Angel Baby (1995) Boys, Les (1997) Nenette et Boni (1996) Prefontaine (1997) Sixth Man, The (1997)
351 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Wallace & Gromit: The Best of Aardman Animation (1996) Wrong Trousers, The (1993)
352 Golden Earrings (1947) Last Dance (1996) My Man Godfrey (1936) Oscar & Lucinda (1997) Stalker (1979)
353 Angel Baby (1995) Aparajito (1956) Boys, Les (1997) Close Shave, A (1995) Pather Panchali (1955)
354 Boys, Les (1997) Braindead (1992) Godfather, The (1972) In the Line of Duty 2 (1987) Pather Panchali (1955)
355 Angel Baby (1995) Boys, Les (1997) Close Shave, A (1995) Fresh (1994) Pather Panchali (1955)
356 Angel Baby (1995) Boys, Les (1997) Mina Tannenbaum (1994) Some Mother's Son (1996) Stalker (1979)
357 Golden Earrings (1947) Good Will Hunting (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Stalker (1979)
358 Angel Baby (1995) Boys, Les (1997) In the Line of Duty 2 (1987) Pather Panchali (1955) Some Mother's Son (1996)
359 Angel Baby (1995) Boys, Les (1997) Brothers in Trouble (1995) Butcher Boy, The (1998) Titanic (1997)
360 Golden Earrings (1947) Hard Eight (1996) Pulp Fiction (1994) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
361 Boys, Les (1997) Golden Earrings (1947) Good Will Hunting (1997) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994)
362 Golden Earrings (1947) Hard Eight (1996) Saint of Fort Washington, The (1993) Shawshank Redemption, The (1994) Titanic (1997)

RMSE

Calculate RMSE of the Spark recommendation model using testing set.

rmse_spark <- predict_spark %>% 
  filter(!isnan(prediction)) %>%
  summarise((rating - prediction)^2 %>% mean() %>% sqrt()) %>%
  collect() %>%
  as.numeric()
print(str_c('RMSE of Model Built in Spark: ',rmse_spark %>% as.character()))
## [1] "RMSE of Model Built in Spark: 0.915883319849977"

Compute Run Time

Calculate the runtime of our Spark recommendation model. It is less than 10 seconds.

run_time_spark <- end_time_spark - start_time_spark
end_time_spark - start_time_spark
## Time difference of 8.30753 secs

Disconnect to Spark

Disconnect our R from Spark.

spark_disconnect(sc)

Summary

We have created two recommendation models using ALS method. For the recommendation model using RecommenderLab, its RMSE is about 0.95 with runtime more than 20 seconds. For the recommendation model using sparklyr, its RMSE is about 0.92 with runtime less than 10 seconds.

Although there's not much difference between the RMSE values of the two models, the runtime of our model built in Spark using sparklyr is more than two times faster than that of using RecommenderLab. Therefore, the overall performance of our Spark model is better.

When our dataset is extremely large, our R system may stop working and sometimes need to reboot our computer. However, a distributed platform such as Spark can solve this issue by running on a node in our cluster, where sparklyr runs on the RAM in our computer. It is faster and safer comparing to our regular R program. First time user may take time to set up Java and Spark with R but users can benefit from Spark if their datasets is considerably very large. Considered we used a dataset with close to 1 millon ratings, when the dataset is extremely large (over 1M+ or even 10M+) and we need fast and iterative processing and computation, it is better moving to a distributed platform such as Spark.