У меня такая же проблема, как в этом сообщении, но у меня нет достаточного количества баллов для добавления комментария. У моего набора данных 1 миллион строк, 100 колос. Я тоже использую Mllib KMeans, и он очень медленный. Работа никогда не заканчивается на самом деле, и я должен ее убить. Я запускаю это в облаке Google (dataproc). Он запускается, если я попрошу меньшее количество кластеров (k = 1000), но все равно занимает более 35 минут. Мне нужно, чтобы он работал для k ~ 5000. Я понятия не имею, почему это так медленно. Данные должным образом разделены с учетом числа рабочих/узлов и SVD на 1 миллионную матрицу размером ~ 300 000 колонок, занимает ~ 3 минуты, но когда дело доходит до KMeans, оно просто переходит в черную дыру. Я сейчас пытаюсь использовать меньшее количество итераций (2 вместо 100), но я чувствую, что что-то не так.
KMeansModel Cs = KMeans.train(datamatrix, k, 100);//100 iteration, changed to 2 now. # of clusters k=1000 or 5000