假设我有一个双打 RDD,我想将它“标准化”如下:
- 计算每个 col 的均值和 sd
- 对于每个 col,从每个条目中减去列平均值,然后将结果除以列 sd
这可以有效且轻松地完成(无需在任何阶段将 RDD 转换为双数组)吗?
谢谢并恭祝安康,
假设我有一个双打 RDD,我想将它“标准化”如下:
这可以有效且轻松地完成(无需在任何阶段将 RDD 转换为双数组)吗?
谢谢并恭祝安康,
您可以使用 Spark 本身的 StandardScaler
/**
* Standardizes features by removing the mean and scaling to unit variance
* using column summary
*/
import org.apache.spark.mllib.feature.StandardScaler
import org.apache.spark.mllib.linalg.Vector
import org.apache.spark.rdd.RDD
val data: RDD[Vector] = ???
val scaler = new StandardScaler(true, true).fit(data)
data.foreach { vector =>
val scaled = scaler.transform(vector)
}