2016-02-23 158 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

回答