2015-11-06 21 views
1

鑑於Groovy具有與Scala大部分相同的特性,我們可以編寫Groovy程序來導入Breeze並在Groovy中進行科學計算。據說Apache Spark是用Scala編寫的,spark爲用Java或Scala編寫客戶端代碼提供了完全相同的庫。例如:可以使用Groovy代碼中的Scala Breeze Library嗎?

在Groovy(或Java)

org.apache.spark.mllib.linalg.Matrix mat = 
    new org.apache.spark.mllib.linalg.DenseMatrix(2,2, [1,2,3,4] as double[]) 
在斯卡拉

val mat: mat:org.apache.spark.mllib.linalg.DenseMatrix = new DenseMatrix(
    2, 2, Array(1, 2, 3, 4)) 

我認爲我使用完全相同的罐子org.apache.spark.mllib.linalg.*爲Java或縮放代碼。如果我在這裏錯了,請糾正我。

而且爲什麼there is a method in Java version

org.apache.spark.mllib.linalg.Matrix.toBreeze() 

但不是在Scala version

org.apache.spark.mllib.linalg.Matrix 

這似乎具有諷刺意味的是微風Matrix是斯卡拉具體,但有API的Java版本,但沒有火花mllib的斯卡拉版本圖書館。

回答

2

不是。 Breeze使用了Scala的隱式解析機制,這在Groovy或其他JVM語言中不起作用。

(見Using Breeze from Java on Spark MLlib

您可以考慮使用MTJ,具有更多的Java界面友好,具有(主要是)相同的線性代數的後端。

相關問題