Spark 1.5.1: Train many binary classifiers, save them, then use them on new data
This is a general ML answer, not about Spark 1.5.1, but perhaps it can help you find a way to the solution.

Your problem is multi-label as well as multi-class (e.g. http://scikit-learn.org/stable/modules/multiclass.html).

Some algorithms have multi-label versions, and will deal with the problem internally so you don't have to. If you don't have a multi-label version of your algorithm, you can either change to an algorithm that does, or roll your own multi-label solution around your algorithm, for example using binary classifiers for each label. (This typically leads to worse performance as there are many complications and possible optimisations to take into account).