【发布时间】:2018-01-30 15:23:52
【问题描述】:
我想将 CSV 坐标格式 (COO) 数据转换为本地矩阵。目前我首先将它们转换为CoordinateMatrix,然后再转换为LocalMatrix。但是有没有更好的方法来做到这一点?
示例数据:
0,5,5.486978435
0,3,0.438472867
0,0,6.128832321
0,7,5.295923198
0,1,7.738270234
代码:
var loadG = sqlContext.read.option("header", "false").csv("file.csv").rdd.map("mapfunctionCreatingMatrixEntryOutOfRow")
var G = new CoordinateMatrix(loadG)
var matrixG = G.toBlockMatrix().toLocalMatrix()
【问题讨论】:
-
您最好提供minimal reproducible example(包括示例数据)并解释动机(如果数据对于本地矩阵来说足够小,听起来像 XY 问题和/或过早优化。它是也不清楚你为什么使用 Spark,更不用说本地 linalg 了,有点没用)而不是赏金。
-
您能否详细说明您想要实现的目标?看起来您只使用 Spark 来解析 CSV 文件,然后在驱动程序上有一个 DenseMatrix。是这样还是有什么遗漏的东西可以帮助社区给出有意义的答案?
-
是的,我想解析那个 CSV 文件,从数据中创建一个 DenseMatrix 并用这些矩阵做很多线性代数。
-
我什至必须在循环内进行矩阵乘法/加法元素乘法。 (我必须使用 spark = 学校项目的原因)
标签: scala apache-spark matrix sparse-matrix apache-spark-ml