Spark:将DataFrame列转换为vector

时间:2017-11-05 08:51:49

标签: apache-spark vector pyspark apache-spark-sql

我有一个带有df列的DataFrame column,我想将column转换为向量(例如DenseVector),以便我可以在矢量和矩阵产品。

注意:我不需要一列向量;我需要一个矢量对象。

怎么做?

我发现了vectorAssembler函数(link),但这对我没有帮助,因为它将一些DataFrame列转换为矢量列,它仍然是一个DataFrame列;我想要的输出应该是一个向量。

关于此问题的目标:为什么我要尝试将DF列转换为向量?假设我有一个带有数字列的DF,我需要计算矩阵和此列之间的乘积。我怎样才能做到这一点? (对于DF数字行也是如此。)欢迎任何替代方法。

1 个答案:

答案 0 :(得分:4)

如何:

DenseVector(df.select("column_name").rdd.map(lambda x: x[0]).collect())

但在任何实际情况下都没有意义

Spark Vectors 未分发,因此仅在数据适合一个(驱动程序)节点的内存时才适用。如果是这种情况,您将不会使用Spark DataFrame进行处理。