Hi, The recently added NNLS implementation in MLlib returns wrong solutions. This is not data specific, just try any data in R's nnls, and then the same data in MLlib's NNLS. The results are very different.
Also, the elected algorithm Polyak(1969) is not the best one around. The most popular one is Lawson-Hanson (1974): http://en.wikipedia.org/wiki/Non-negative_least_squares#Algorithms