2015-08-06 1 views
3

Je suis nouveau sur scala et j'écris une application Spark dans Scala et j'ai besoin d'utiliser la fonction axpy de org.apache.spark.mllib.linalg.BLAS. Cependant, il semble ne pas être accessible aux utilisateurs. Au lieu de cela, j'essaie d'importer le com.github.fomil.netlib et y accéder directement. Mais je pourrais soit. Je dois multiplier à DenseVector.Comment utiliser la bibliothèque BLAS dans Spark?

Répondre

0

Ajouter MLlib à votre projet

libraryDependencies += "org.apache.spark" %% "spark-mllib" % "1.3.0"

+0

Je l'ai dans mon projet, et inclus le 11org.apache.spark.mllib.linalg.BLAS'' mais quand j'écris '' BLAS.axpy() '' il est dit 'axpy' n'est pas un membre de BLAS ~ J'ai lu quelque part que BLAS n'est pas exposé pour les utilisateurs. Des alternatives? –

+0

qu'est-ce qui vous donne cette erreur? Le compilateur dans sbt la console? Un ide? –

+0

Je travaille dans Scala-IDE, il affiche un message d'erreur et n'est pas compilé. –

6

En ce moment, la classe BLAS au sein MLlib est marquée private[spark] dans l'étincelle source code. Qu'est-ce que cela signifie, c'est qu'il n'est pas accessible à l'extérieur pour se déclencher comme vous semblez avoir compris. En bref, vous ne pouvez pas l'utiliser dans votre code.

Si vous voulez utiliser des classes netlib-java, vous devez directement ajouter la dépendance suivante à votre projet

libraryDependencies += "com.github.fommil.netlib" % "all" % "1.1.2" pomOnly() 

Cela devrait vous permettre d'importer la classe BLAS. Remarque, je n'ai pas vraiment essayé de l'utiliser, mais je suis capable d'exécuter BLAS.getInstance() sans problème. Il peut y avoir quelques complexités dans l'installation sur certaines plates-formes Linux comme décrit ici - https://github.com/fommil/netlib-java.