Я новичок в искры, и я действительно наслаждаюсь возможностями, предлагаемыми этой технологией. Моя проблема заключается в том, как выполнить операцию с одним элементом над остальной частью RDD для каждого элемента без использования цикла for. Вот моя попытка с циклом:Выполнение операции одного элемента над остальной частью RDD
//RDD[Key:Int,Vector:(Double,Double)]
val rdd = data.map(x => (x.split(',')(0).toInt,Vectors.dense(x.split(',')(1).toDouble,x.split(',')(2).toDouble)))
for(ind <- 0 to rdd.count().toInt -1) {
val element1 = rdd.filter(x => x._1 == ind)
val vector1 = element1.first()._2
val rdd2 = rdd.map(x => {
var dist1 = Vectors.sqdist(x._2,vector1)
(x._1 , Math.sqrt(dist1))
})
}
Спасибо за ваши советы