Merge branch 'develop'
diff --git a/README.md b/README.md
index 08690bc..3b21e08 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,10 @@
 
 ## Versions
 
+### v0.1.3
+
+- cache mllibRatings RDD in algorithm train() because it is used at multiple places (non-empty data check and ALS)
+
 ### v0.1.2
 
 - update for PredictionIO 0.9.0
diff --git a/src/main/scala/ALSAlgorithm.scala b/src/main/scala/ALSAlgorithm.scala
index 358291e..7c0ddb9 100644
--- a/src/main/scala/ALSAlgorithm.scala
+++ b/src/main/scala/ALSAlgorithm.scala
@@ -90,6 +90,7 @@
         // MLlibRating requires integer index for user and item
         MLlibRating(u, i, v)
       }
+      .cache()
 
     // MLLib ALS cannot handle empty training data.
     require(!mllibRatings.take(1).isEmpty,