У меня есть этот фрейм данных в следующем формате:
+----+-----+
| features |
+----+-----+
|[1,4,7,10]|
|[2,5,8,11]|
|[3,6,9,12]|
+----+----+
Скрипт для создания образца фрейма данных:
rows2 = sc.parallelize([ IndexedRow(0, [1, 4, 7, 10 ]),
IndexedRow(1, [2, 5, 8, 1]),
IndexedRow(1, [3, 6, 9, 12]),
])
rows_df = rows2.toDF()
row_vec= rows_df.drop("index")
row_vec.show()
Столбец объектов содержит 4 объекта и 3 идентификатора строки.Я хочу преобразовать эти данные в матрицу строк, где столбцы и строки будут иметь следующий формат mat:
from pyspark.mllib.linalg.distributed import RowMatrix
rows = sc.parallelize([(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12)])
# Convert to RowMatrix
mat = RowMatrix(rows)
# Calculate exact and approximate similarities
exact = mat.columnSimilarities()
approx = mat.columnSimilarities(0.05)
По сути, я хочу переместить кадр данных в новый формат, чтобы я мог запуститьФункция columnSimilities ().У меня есть гораздо больший массив данных, который содержит 50 объектов и 39000 строк.