2016-02-23 160 views
0

ENV:StandardScaler返回NaN

spark-1.6.0 with scala-2.10.4 

用法:

// row of df : DataFrame = (String,String,double,Vector) as (id1,id2,label,feature) 
val df = sqlContext.read.parquet("data/Labeled.parquet") 
val SC = new StandardScaler() 
.setInputCol("feature").setOutputCol("scaled") 
.setWithMean(false).setWithStd(true).fit(df) 


val scaled = SC.transform(df) 
.drop("feature").withColumnRenamed("scaled","feature") 

代码为这里的例子http://spark.apache.org/docs/latest/ml-features.html#standardscaler

NaN的存在scaledSC.meanSC.std

我不了解为什么StandardScaler甚至可以在mean中做到这一点,或者如何处理这种情况。任何建议表示赞赏。

数据大小为实木复合地板是1.6GiB,如果有人需要它只是让我知道

UPDATE:

获得通过的StandardScaler的代码,这很可能是的DoubleMultivariateOnlineSummarizer精度的问题聚集。

+0

而且还大,NaN列在'SC.mean'generates非楠导致缩放。奇怪的。 – skywalkerytx

+0

你可以添加一些细节?对于初学者而言,问题栏的最小和最大值。 – zero323

+0

@ zero323(min,max)是(1.5E-5,1.7976931348623157E308)这让我想起了脏数据 – skywalkerytx

回答