我正在使用mahout數學向量(org.apache.mahout.math.Vector
) 並希望將其轉換爲數組。scala - 將mahout向量轉換爲數組
看在documentation我沒有找到一個函數來轉換。
什麼是最簡單的方法來轉換它(使用scala)?
我正在使用mahout數學向量(org.apache.mahout.math.Vector
) 並希望將其轉換爲數組。scala - 將mahout向量轉換爲數組
看在documentation我沒有找到一個函數來轉換。
什麼是最簡單的方法來轉換它(使用scala)?
你可以使用JavaConverters(我沒有象夫,所以有可能是代碼中的一個小錯誤):
val javaIterable = mahoutVector.all()
import scala.collection.JavaConverters.iterableAsScalaIterableConverter
val scalaIterable = javaIterable.asScala
val scalaArray = scalaIterable.toArray
scalaArray現在包含Vector.Element對象。如果你想有雙值,您必須將元素映射(與獲得()):
[same first three lines as above]
val scalaArray = scalaIterable.map(_.get()).toArray
亨利馬烏最新高手版有一個漂亮的全功能斯卡拉API和線性代數DSL。新代碼正在Scala中編寫並針對Spark。實際上,Hadoop mapreduce沒有新的貢獻,只有Spark。
Scala和星火綁定描述如下:http://mahout.apache.org/users/sparkbindings/ScalaSparkBindings.pdf
甚至有斯卡拉殼牌在那裏你可以交互地有很多核心亨利馬烏代碼的實驗。
你可能不需要一個給定新的方法來操縱Scala中的Vectors和Matricies的數組。
@webSpider你爲什麼使用var而不是val? :-) –
某種稱爲置換的東西,你知道:) – jarandaf
在Scala(和其他函數式編程語言)中,不變性比可變性更受歡迎。這具有一些優點,例如您可以更好地理解程序中發生的情況,並簡化併發編程。 – Christian