2016-04-25 10 views
3

Ich mag Funken Brise verwenden, um einige Berechnungen durchzuführen und schließlich ein R-Paket implementieren für Funken https://stackoverflow.com/questions/36727811/spark-weighted-repeated-median-smoothing-and-filteringMit Brise in Funken

Allerdings habe ich ein Problem festgestellt mit Brise getting started. Wenn mit Funken kombiniert die Brise implicits scheinen nicht richtig

import breeze.linalg.{ DenseVector => BDV } 
import breeze.stats.distributions.Poisson 
import org.apache.spark.sql.SQLContext 
import org.apache.spark.{ SparkConf, SparkContext} 
import breeze.stats.{ mean => bmean} 

import breeze.stats._ 

class RobfilterR extends App { 

    val conf = new SparkConf().setAppName("RobfilterR").setMaster("local[*]") 
    val sc = new SparkContext(conf) 
    val sql = new SQLContext(sc) 

    val poi = Poisson(3.0) 
    val x = poi.sample(10) 
    val v = BDV(x.toArray) 
    bmean(v) 

}

Aber grundlegende Brise Funktionen funktionieren nicht mehr importiert werden, weil die implicits nicht korrekt importiert wurden. Was ist hier falsch?

error: could not find implicit value for parameter impl: breeze.stats.mean.Impl[breeze.linalg.DenseVector[Int],VR] 
       bmean(v) 

Antwort

6

Die Ursache des Problems ist ein Argument Sie mean nicht Importe zu übergeben. Breeze implementiert einfach keinen Mittelwert für Vector[Int].

import breeze.stats.mean 
import breeze.linalg.{Vector, DenseVector} 

val v = DenseVector(1, 2, 3) 
mean(v) 
// error: could not find implicit value for parameter impl: 
// breeze.stats.mean.Impl[breeze.linalg.DenseVector[Int],VR] 
//  mean(v) 

Wenn Sie bedeuten berechnen Sie es zu einem unterstützten Typ umwandeln müssen werde zuerst:

import breeze.linalg.convert 

mean(convert(v, Double)) 
// Double = 2.0