2014-06-12 3 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

inmutability라고하는 것 : – jarandaf

+0

스칼라 (및 다른 함수형 프로그래밍 언어)에서 불변성은 가변성보다 선호됩니다. 여기에는 몇 가지 장점이 있습니다. 당신은 당신의 프로그램에서 일어나는 일에 대해 더 잘 추리 할 수 ​​있고 동시 프로그래밍을 단순화합니다. – Christian

1

두싯의 최신 마스터 버전은 꽤 완전한 기능을 갖춘 스칼라 API 및 선형 대수학 DSL 있습니다. 새 코드가 스칼라로 작성되고 Spark를 대상으로합니다. 실제로 Hadoop mapreduce에는 새로운 기여가 허용되지 않으며 Spark 만 허용됩니다.

스칼라와 스파크 바인딩은 여기에 설명되어 있습니다 http://mahout.apache.org/users/sparkbindings/ScalaSparkBindings.pdf

도 대화 형으로 핵심 두싯 코드의 많은 실험을 할 수있는 스칼라 쉘 있습니다.

스칼라에서 벡터 및 매트릭스를 조작하는 새로운 방법을 고려할 때 배열이 필요하지 않을 수도 있습니다.