Which Spark MLlib regression algorithm is suitable for numeric predictions based on non-numeric features?
I would suggest -ensembles of trees (Random Forests and Gradient-Boosted Trees).

Here is a nice reference for handling such data with decision trees.