To get predictions for new users using the trained model:
For a user in the model, you should use its latent representation (vector u of size f (number of factors)), which is multiplied by the product latent factor matrix (matrix made of the latent representations of all products, a bunch of vectors of size f) and gives you a score for each product. For new users, the problem is that you don't have access to their latent representation, but what you can do is use a similarity function to compute a similar latent representation for this new user by multiplying it by the transpose of the product matrix. Varied details we will get while working on Spark Machine Learning.
i.e. if user latent matrix is u and your product latent matrix is v, for user in the model, you get scores by doing: u_i * v for a new user, you don't have a latent representation, so take the full representation full_u and do full_u * v^t * v This will approximate the latent factors for the new users and should give reasonable recommendations.
This allows you to compute predictions for new users without having to do the heavy computation of the model which you can now do only once in a while. So you have batch processing at night and can still make a prediction for the new users during the day.
Since, Spark is just a part of Machine Learning, more detailing and varied methods on this we will get is through the Machine Learning Tutorials.
Hope this answer helps you!