Умножение искровой матрицы на питон

Я пытаюсь сделать матричное умножение, используя Apache Spark и Python.

Вот мои данные

from pyspark.mllib.linalg.distributed import RowMatrix

Мой рдд векторов

rows_1 = sc.parallelize([[1, 2], [4, 5], [7, 8]])
rows_2 = sc.parallelize([[1, 2], [4, 5]])

Моя макрикс

mat1 = RowMatrix(rows_1)
mat2 = RowMatrix(rows_2)

Я хотел бы сделать что-то вроде этого:

mat = mat1 * mat2

Я написал функцию для обработки умножения матриц, но я боюсь иметь длительное время обработки. Вот моя функция:

def matrix_multiply(df1, df2):
    nb_row = df1.count()    
    mat=[]
    for i in range(0, nb_row):
        row=list(df1.filter(df1['index']==i).take(1)[0])
        row_out = []
        for r in range(0, len(row)):
            r_value = 0
            col = df2.select(df2[list_col[r]]).collect()
            col = [list(c)[0] for c in col]
            for c in range(0, len(col)): 
                r_value += row[c] * col[c]
            row_out.append(r_value)            
        mat.append(row_out)
    return mat 

Моя функция совершать много искровых действий (брать, собирать и т. Д.). Функция займет много времени обработки? Если у кого-то есть другая идея, это будет полезно для меня.

Ответы на вопрос(1)

Ваш ответ на вопрос