私はインターネット上のすべてを見てきて、スパークのデータフレームをマトリックスに変換してマトリックス操作を行う方法を見つけることができませんでした。SparkデータフレームをSpark DenseMatrixに変換して操作する
これをSpark 2でどうすれば簡単に達成できますか?
私はインターネット上のすべてを見てきて、スパークのデータフレームをマトリックスに変換してマトリックス操作を行う方法を見つけることができませんでした。SparkデータフレームをSpark DenseMatrixに変換して操作する
これをSpark 2でどうすれば簡単に達成できますか?
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