Я пробовал спаривать образцы, но это стоит огромного объема памяти, поскольку 100 образцов приводят к 9900 образцам, что является более дорогостоящим. Что может быть более эффективным способом вычисления матрицы расстояний в распределенной среде в искреКак вычислить матрицу расстояния в искрах?
Вот фрагмент псевдокода, что я пытаюсь
val input = (sc.textFile("AirPassengers.csv",(numPartitions/2)))
val i = input.map(s => (Vectors.dense(s.split(',').map(_.toDouble))))
val indexed = i.zipWithIndex() //Including the index of each sample
val indexedData = indexed.map{case (k,v) => (v,k)}
val pairedSamples = indexedData.cartesian(indexedData)
val filteredSamples = pairedSamples.filter{ case (x,y) =>
(x._1.toInt > y._1.toInt) //to consider only the upper or lower trainagle
}
filteredSamples.cache
filteredSamples.count
Приведенный выше код создает пар, но даже если мой набор данных содержит 100 образцов, путем спаривания фильтрованных образцов (см. Выше), приводит к выборке 4950, что может быть очень дорогостоящим для больших данных.
Просьба представить любые примеры кода того, что вы пробовали до сих пор, данные или образцы данных, относящиеся к вашему вопросу, и любые библиотеки или ресурсы, которые вы пробовали. –
Я добавил фрагмент кода. Надеюсь, это поможет вам, что моя проблема –