Я должен умножить разреженную матрицу 1mill x 10k на матрицу 10k x 1
в Scala оба набора данных находятся в sql.
Я хотел бы знать, является ли scala подходящим выбором для реализации решения. Это нужно выполнить менее чем за минуту.
У меня есть таблица sql 1 формата:
user,col1,val1
1,"A",10.1
1,"B",14.7
2,"A",5.1
2,"C",9.5
И у меня есть таблица ввода 2
col1,val2
"A", 100.1
"B", 110.2
"C", 57.6
Мне нужно преобразовать таблицу 1 в таблицу форматов 3:
user "A" "B" "C"
1,10.1,14.7,0
2,5.1,0,9.5
И умножьте его на матрицу столбца val2 таблицы 2 как матрицу 2 x 3 (P) в матрицу 3 x 1 (Q). P, как ожидается, будет разреженным и находится в диапазоне 1mill x 10k, а Q будет 10k x 1
Я хотел бы знать, является ли scala подходящим выбором для реализации решения. Это нужно выполнить менее чем за минуту.
До сих пор я сделал следующее:
Считать данные из sql для таблицы 1.
val df_table1 = spark.read.jdbc(url=url,table = "table_1",properties = connectionProperties)
Затем повернул его к
val df_table3 = df_table1.groupBy("user").pivot("col1").agg(first("val1")).na.fill(0)
Я также прочитал таблицу 2 как фрейм данных.
Теперь я хочу преобразовать их в матрицу разреженных / строк, умножить их и записать результат обратно в MySQL, как я могу это сделать?