【问题标题】:Spark: convert DataFrame column into vectorSpark:将DataFrame列转换为向量
【发布时间】:2018-04-17 14:28:52
【问题描述】:

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

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

如何做到这一点?

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


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

【问题讨论】:

  • 请提供一些示例数据以及所需的输出
  • 我不认为这是重复的。如果我理解得很好,这另一篇文章正在尝试转换 DF 列的类型;我宁愿从 DF 中提取一列并将其转换为向量,因为它不再是任何 DF 的列。

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


【解决方案1】:

如何:

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

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

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

【讨论】:

  • 好吧,假设我有一个带有数字列的 DF,我需要计算矩阵和该列之间的乘积。我怎样才能做到这一点? (同样适用于 DF 数字行。)
猜你喜欢
  • 2018-03-19
  • 2017-01-01
  • 1970-01-01
  • 2016-12-01
  • 2021-09-25
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多