Spark-based K-means for population-scale clustering