Понимать, что 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])
Однако вы должны пройти все строки в один большой список, который побеждает цель использования искры на всех.
В случае, если вы ищете просто делать матричные операции на вашем dataframe и не повесились на формате DenseMatrix, я предлагаю вам использовать RowMatrix
конструктор в pyspark.mllib.linalg.distributed
Это очень просто преобразовать РД к densematrix, как показано ниже
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
в случае dataframe вы можете просто передать df.rdd
конструктору RowMatrix. Более подробную информацию о различных методах RowMatrix можно найти по следующей ссылке: https://spark.apache.org/docs/latest/api/python/pyspark.mllib.html#pyspark.mllib.linalg.distributed.RowMatrix