【发布时间】:2016-10-15 01:22:41
【问题描述】:
我尝试过配对样本,但它会消耗大量内存,因为 100 个样本会导致 9900 个样本,这更昂贵。在火花的分布式环境中计算距离矩阵的更有效方法是什么
这是我正在尝试的伪代码的 sn-p
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 个样本,通过配对 filterSamples(上面)会产生 4950 个样本,这对于大数据来说可能非常昂贵
【问题讨论】:
-
请发布您迄今为止尝试过的任何代码示例、与您的问题相关的数据或示例数据,以及您尝试过的任何库或资源。
-
我已经添加了代码的sn-p。希望它可以帮助您解决我的问题
标签: apache-spark distance-matrix bigdata