【问题标题】:How to create a `Vector` from `DataFrame` in Apache Spark ML API?如何在 Apache Spark ML API 中从“DataFrame”创建一个“Vector”?
【发布时间】:2018-04-03 11:01:21
【问题描述】:

如何在 Apache Spark ML API 中从 DataFrame 创建 Vector(import org.apache.spark.mllib.linalg.{DenseVector, SparseVector})?

【问题讨论】:

  • 您需要提供更多信息才能获得有用的答案。您的 DataFrame 的形状是什么(是单列还是多列)?如果有多个,你想要每列一个向量吗?你要每行一个吗?由于您使用的是 Spark,我假设您无法将 DataFrame 放入内存中。您希望如何将向量放入内存中?每个节点一个或其他?
  • 您是否介意按照上面评论中的建议更新问题

标签: scala apache-spark spark-dataframe


【解决方案1】:

如果你想要scala.collection.Vector 你可以只收集DataFrame并调用toVector()函数。

val df = Seq(1, 2, 3).toDF
val vector = df.collect().toVector
vector.map(_.getInt(0))

p。 s。请解释为什么会被否决

【讨论】:

  • 我不知道你为什么投了反对票。也许是因为它产生行向量而不是整数向量。很难说,因为这个问题似乎不清楚。
  • @AndreyTyukin 问题从来没有提到TVector[T] 应该是什么类型。在我看来,这个问题太宽泛了。
  • 确实如此,正如我所说,问题似乎不清楚。但是无论T 是什么类型,您的提案都会返回Vector[Row],而不是Vector[T],这可能是OP 想要的......但是,谁知道OP 想要什么?
猜你喜欢
  • 2015-10-12
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 2019-07-08
  • 1970-01-01
相关资源
最近更新 更多