Spark mllib教程
通过Statistics.colStats 方法 对 RDD[Vector]的每一列进行汇总统计。该方法返回一个MultivariateStatisticalSummary对象,包含最大值、最小值、平均值、方差等统计信息。
def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("StatisticsTest") .master("local[4]") .getOrCreate() val sc = spark.sparkContext import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.stat.{MultivariateStatisticalSummary, Statistics} val observations = sc.parallelize( Seq( Vectors.dense(1.0, 10.0, 100.0), Vectors.dense(2.0, 20.0, 200.0), Vectors.dense(3.0, 30.0, 300.0), Vectors.dense(0.0, 0.0, 0.0), Vectors.dense(4.0, 40.0, 400.0) ) ) // 计算列的统计摘要信息. val summary: MultivariateStatisticalSummary = Statistics.colStats(observations) println(summary.mean) // 每一列的均值 println(summary.variance) // 每一列的方差 println(summary.numNonzeros) // 每一列的非0个数 //输出 // [2.0,20.0,200.0] //均值,第一列均值为2.0,第二列均值为20.0,第三列均值为200.0 // [2.5,250.0,25000.0] //方差 // [4.0,4.0,4.0] //非零个数 spark.stop() }