This project generalizes the Spark MLLIB K-Means clusterer to support arbitrary distance functions