我使用mllib的corr和基本界面 喜欢
val a:RDD[Double] = sc.makeRDD(Seq(1., 1., 0.))
val b:RDD[Double] = sc.makeRDD(Seq(1., -1., 0.))
val r = Statistics.corr(a, b)
println(r)
是否有可能逐个或成对地去除NAN和Infinity值?
默认情况下,在无穷大或NAN值的情况下,Mllib提供NAN作为corr的结果。
答案 0 :(得分:1)
据我所知,没有内置函数,您需要自己过滤掉这些值。一种方法是使用java.Double(http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html)功能:
import java.lang.Double.isNaN
import java.lang.Double.isInfinite
val filtered1 = data1.filter((!isNaN(_))&&(!isInfinite(_)))
val filtered2 = data2.filter((!isNaN(_))&&(!isInfinite(_)))
val r = Statistics.corr(filtered1, filtered2)
println(r)