Я использую Python и Spark для решения проблемы. У меня есть фрейм данных, содержащий два столбца в фрейме данных Spark. Каждый из столбцов содержит скаляр типа numeri c (например, double или float).
Я хочу интерпретировать эти два столбца как вектор и вычислить сходство consine между их. Sofar Я нашел только искровую линейную алгебру, которую можно использовать для плотного вектора, расположенного в ячейке фрейма данных.
образец кода
Код в numpy
import numpy as np
from numpy.linalg import norm
vec = np.array([1, 2])
vec_2 = np.array([2, 1])
angle_vec_vec = (np.dot(vec, vec))/(norm(vec * norm(vec)))
print(angle_vec_vec )
Результат должен 0.8
Как это сделать в Spark?
df_small = spark.createDataFrame([(1, 2), (2, 1)])
df_small.show()
Есть ли способ преобразовать столбец двойных значений в плотный вектор? Видите ли вы другое решение моей проблемы?