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