There are times when the actual observations (ratings) are not available and one must deal with implied feedback parameters. This can be as simple as which audio track was listened to during an engagement to how long a movie was watched, or the context (indexed in advance) or what caused a switch (a Netflix movie abandoned in the beginning, middle, or near a specific scene). The example provided in the third recipe deals with explicit feedback via the use of ALS.train().
The Spark ML library provides an alternative method, ALS.trainImplicit(), with four hyper parameters to control the algorithm and address the implicit data. If you are interested in testing this (it is very similar to the explicit ...