我有一个带有df
列的DataFrame column
,我想将column
转换为向量(例如DenseVector
),以便我可以在矢量和矩阵产品。
注意:我不需要一列向量;我需要一个矢量对象。
怎么做?
我发现了vectorAssembler
函数(link),但这对我没有帮助,因为它将一些DataFrame列转换为矢量列,它仍然是一个DataFrame列;我想要的输出应该是一个向量。
关于此问题的目标:为什么我要尝试将DF列转换为向量?假设我有一个带有数字列的DF,我需要计算矩阵和此列之间的乘积。我怎样才能做到这一点? (对于DF数字行也是如此。)欢迎任何替代方法。
答案 0 :(得分:4)
如何:
DenseVector(df.select("column_name").rdd.map(lambda x: x[0]).collect())
但在任何实际情况下都没有意义。
Spark Vectors
未分发,因此仅在数据适合一个(驱动程序)节点的内存时才适用。如果是这种情况,您将不会使用Spark DataFrame
进行处理。