Algorithm Suggestion For a Specific Problem I'm working on a problem where in I have some data sets about some power generating units. Each of these units have been activated to run in the past and while activation, some units went into some issues. I now have all these data and I would like to come up with some sort of Ranking for these generating units. The criteria for ranking would be pretty simple to start with. They are:


Maximum number of times a particular generating unit was activated
How many times did the generating unit ran into problems during activation


Later on I would expand on this ranking algorithm by adding more criteria. I will be using Apache Spark MLIB library and I can already see that there are quite a few algorithms already in place. 

http://spark.apache.org/docs/latest/mllib-guide.html

I'm just not sure which algorithm would fit my purpose. Any suggestions?
You can use a clustering algorithm such as k-means to divide the generators into groups.  You never know what kind of groups you'll get until you try it.  Try and assess the character of each group of generators as you increase the number of clusters.  At some point you should find a meaningful division of generators.  The inputs to your k-means algorithm will be the criteria you mentioned in your post: the number of times it was activated, the number of activation problems, and so forth.  When you are finished, the group a generator belongs to is its ranking.  This method will not generate a ranking of 1-1000 if you have 1000 generators.  Rather it will give you, for example with k=3: a group of 243 outstanding generators, 320 average generators, and 446 terrible generators.