2014-06-12 43 views
2

大多数在火花中使用矩阵运算的算法必须使用矢量或以不同的方式存储它们的数据。是否支持直接在火花中构建矩阵?是否激发支持矩阵?

+0

这个问题有一些好的信息上该主题:http://stackoverflow.com/questions/24147186/how-to-build-a-large-distributed-sparse-matrix-in-apache-spark-1-0 – maasg

+0

在处理大数据时,我尽量避免使用矩阵运算的算法往往不能很好地扩展。此外,机器学习中的线性代数技术通常源于线性,欧几里德和高斯假设。在处理大数据时,现在是扩大视野和学习一些新技术的时候了:) – samthebest

回答

2

Apache最近发布了Spark-1.0。它支持在Spark中创建矩阵,这是一个非常有吸引力的想法。虽然现在它处于试验阶段,并且支持可以在您创建的Matrix上执行的有限操作,但在将来的版本中这一点肯定会增加。 Matrix操作以Spark的速度执行的想法令人惊叹。

0

我在Spark中使用矩阵的方式是通过python和numpy scipy。将数据从csv文件拖入矩阵中并根据需要使用。我对待矩阵与我在普通Python pyipy中的一样。这是如何并行化数据,使其稍有不同。

事情是这样的:

for i in range(na+2): 
data.append(LabeledPoint(b[i], A[i,:])) 

model = WhatYouDo.train(sc.parallelize(data), iterations=40, step=0.01,initialWeights=wa) 

疼痛渐渐numpy的SciPy的成火花。发现以确保所有其他图书馆和文件需要被纳入最好的办法是使用:

须藤yum的安装numpy的SciPy的蟒蛇,matplotlib IPython的蟒蛇,大熊猫sympy蟒蛇鼻

+0

好,但性能永远不会匹配使用Spark矩阵本身实现的性能。那些会更优化的方式。 –

+1

是的,你是对的。使用它们是因为从普通Python程序导入并使用numpy进行特定计算。正如你指出的那样,努力使基于Spark的过程实现效率。谢谢! – Jesse