2014-06-12 86 views

回答

1

你可以使用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 
+0

@webSpider你爲什麼使用var而不是val? :-) –

+0

某種稱爲置換的東西,你知道:) – jarandaf

+0

在Scala(和其他函數式編程語言)中,不變性比可變性更受歡迎。這具有一些優點,例如您可以更好地理解程序中發生的情況,並簡化併發編程。 – Christian

1

亨利馬烏最新高手版有一個漂亮的全功能斯卡拉API和線性代數DSL。新代碼正在Scala中編寫並針對Spark。實際上,Hadoop mapreduce沒有新的貢獻,只有Spark。

Scala和星火綁定描述如下:http://mahout.apache.org/users/sparkbindings/ScalaSparkBindings.pdf

甚至有斯卡拉殼牌在那裏你可以交互地有很多核心亨利馬烏代碼的實驗。

你可能不需要一個給定新的方法來操縱Scala中的Vectors和Matricies的數組。