2017-02-17 3 views

答えて

0

sparkのDenseMatrixは、分散マトリックスではなくローカルを作成し、すべてを単一ノードに配置することを理解しています。あなたがすべてで火花を使用しての目的に反し、単一の大きなリストにすべての行を渡す必要がし​​かしdensematrixは次のよう

# Constructor : DenseMatrix(numRows, numCols, values) 
from pyspark.mllib.linalg import Matrix, Matrices 
dm2 = Matrices.dense(3, 2, [1, 2, 3, 4, 5, 6]) 

で作成することができます。

あなたは自分のデータフレームに行列演算を行って探していたとDenseMatrix形式にハングアップされていない場合、私はpyspark.mllib.linalg.distributed

にあなたがRowMatrixコンストラクタを使用することをお勧めにRDDを変換するために非常に単純ですあなたは、単にRowMatrixコンストラクタにdf.rddに渡すことができるデータフレームの場合は

from pyspark.mllib.linalg.distributed import RowMatrix 

# Create an RDD of vectors. 
rows = sc.parallelize([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) 

# Create a RowMatrix from an RDD of vectors. 
mat = RowMatrix(rows) 

# Get its size. 
m = mat.numRows() # 4 
n = mat.numCols() # 3 

以下のようにdensematrix。 RowMatrixのさまざまな方法の詳細については、次のリンクを参照してください。https://spark.apache.org/docs/latest/api/python/pyspark.mllib.html#pyspark.mllib.linalg.distributed.RowMatrix

関連する問題