【发布时间】:2020-07-14 20:25:05
【问题描述】:
我正在使用 Python 和 Spark 来解决问题。 我在 Spark Dataframe 中有包含两列的数据框 每列都包含一个数字(例如双精度或浮点)类型的标量。
我想将这两列解释为向量并计算它们之间的余弦相似度。 到目前为止,我只找到了可以用于位于数据帧单元格中的密集向量的 spark 线性代数。
代码示例
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()
有没有办法将一列双精度值转换为密集向量? 您是否看到任何其他解决方案来解决我的问题?
【问题讨论】:
标签: python numpy apache-spark