【发布时间】:2016-09-13 21:54:52
【问题描述】:
在计算与存储在 HDFS 文件中的一组点相关的距离矩阵后,我需要通过MongoDB Connector for Apache Spark 将计算出的距离矩阵以分布式形式(CoordinateMatrix/RowMatrix)存储在 MongoDB 中。是否有推荐的方法来执行此操作,甚至有更好的连接器来进行此类操作?
这是我的代码的一部分:
val data = sc.textFile("hdfs://localhost:54310/usrp/copy_sample_data.txt")
val points = data.map(s => Vectors.dense(s.split(',').map(_.toDouble)))
val indexed = points.zipWithIndex()
val indexedData = indexed.map{case (value, index) => (index, value)}
val pairedSamples = indexedData.cartesian(indexedData)
val dist = pairedSamples.map{case (x,y) => ((x,y),distance(x._2,y._2))}.map{case ((x,y),z) => (((x,y),z,covariance(z)))}
val entries: RDD[MatrixEntry] = dist.map{case (((x,y),z,cov)) => MatrixEntry(x._1, y._1, cov)}
val coomat: CoordinateMatrix = new CoordinateMatrix(entries)
进一步说明,我在 Spark 中从 RDD 创建了这个矩阵。那么也许将数据从 RDD 保存到 Mongodb 会更好/可能?
【问题讨论】:
标签: mongodb matrix apache-spark rdd