【发布时间】:2014-06-13 07:39:19
【问题描述】:
我正在使用 mahout 数学向量 (org.apache.mahout.math.Vector)
并希望将其转换为数组。
查看documentation,我没有找到要转换的函数。
转换它的最简单方法是什么(使用 scala)?
【问题讨论】:
标签: java arrays scala vector mahout
我正在使用 mahout 数学向量 (org.apache.mahout.math.Vector)
并希望将其转换为数组。
查看documentation,我没有找到要转换的函数。
转换它的最简单方法是什么(使用 scala)?
【问题讨论】:
标签: java arrays scala vector mahout
您可以使用 JavaConverters(我没有 mahout,因此代码中可能存在小错误):
val javaIterable = mahoutVector.all()
import scala.collection.JavaConverters.iterableAsScalaIterableConverter
val scalaIterable = javaIterable.asScala
val scalaArray = scalaIterable.toArray
scalaArray 现在包含 Vector.Element 对象。如果您想拥有双精度值,则必须映射元素(使用 .get()):
[same first three lines as above]
val scalaArray = scalaIterable.map(_.get()).toArray
【讨论】:
最新的 Mahout 主版本具有功能非常齐全的 Scala API 和线性代数 DSL。新代码是用 Scala 编写的,并针对 Spark。事实上,Hadoop mapreduce 没有新的贡献被接受,只有 Spark。
此处描述了 Scala 和 Spark 绑定:http://mahout.apache.org/users/sparkbindings/ScalaSparkBindings.pdf
甚至还有一个 Scala Shell,您可以在其中交互式地试验大量 Mahout 核心代码。
鉴于在 Scala 中操作向量和矩阵的新方法,您可能不需要数组。
【讨论】: